Bundletool dev
[mir.git] / source / mir / servlet / ServletModuleShow.java
1 /*\r
2  * Copyright (C) 2001, 2002  The Mir-coders group\r
3  *\r
4  * This file is part of Mir.\r
5  *\r
6  * Mir is free software; you can redistribute it and/or modify\r
7  * it under the terms of the GNU General Public License as published by\r
8  * the Free Software Foundation; either version 2 of the License, or\r
9  * (at your option) any later version.\r
10  *\r
11  * Mir is distributed in the hope that it will be useful,\r
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
14  * GNU General Public License for more details.\r
15  *\r
16  * You should have received a copy of the GNU General Public License\r
17  * along with Mir; if not, write to the Free Software\r
18  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA\r
19  *\r
20  * In addition, as a special exception, The Mir-coders gives permission to link\r
21  * the code of this program with the com.oreilly.servlet library, any library\r
22  * licensed under the Apache Software License, The Sun (tm) Java Advanced\r
23  * Imaging library (JAI), The Sun JIMI library (or with modified versions of\r
24  * the above that use the same license as the above), and distribute linked\r
25  * combinations including the two.  You must obey the GNU General Public\r
26  * License in all respects for all of the code used other than the above\r
27  * mentioned libraries.  If you modify this file, you may extend this exception\r
28  * to your version of the file, but you are not obligated to do so.  If you do\r
29  * not wish to do so, delete this exception statement from your version.\r
30  */\r
31 \r
32 package  mir.servlet;\r
33 \r
34 import javax.servlet.http.HttpServletRequest;\r
35 import javax.servlet.http.HttpServletResponse;\r
36 \r
37 import freemarker.template.TemplateModelRoot;\r
38 \r
39 \r
40 /**\r
41  *  Standard ServletModule, dass eine Template anzeigt, und nicht\r
42  *  mit Daten mischt. Damit ist es moeglich, einfache HTML-Seiten\r
43  *  als templates zu benutzen. Damit kann auf einfache Weise die\r
44  *  Funktionalitaet der Freemarker-Bibliothek (beispielsweise Navigationen\r
45  *  per <code>include</code> einzubauen) benutzt werden. Die Templates\r
46  *  werden aus dem per Konfiguration angegebenem template-Verzeichnis\r
47  *  im Ordner "/html" genommen.\r
48  *\r
49  * @author RK\r
50  */\r
51 public class ServletModuleShow extends ServletModule {\r
52   private static ServletModuleShow instance = new ServletModuleShow();\r
53 \r
54   /**\r
55    * Ein ServletModuleShow-Objekt wird ?ber getInstance geliefert. Es gibt zur\r
56    * Laufzeit nur ein Objekt (Singleton)\r
57    * @return ServletModuleShow\r
58    */\r
59   public static ServletModule getInstance() {\r
60     return instance;\r
61   }\r
62 \r
63   /**\r
64    * Initialisierung leer.\r
65    */\r
66   private ServletModuleShow() {\r
67   }\r
68 \r
69   /**\r
70    * defaultAction (s.a ServletModule)\r
71    * @return "show"\r
72    */\r
73   public String defaultAction() {\r
74     return "show";\r
75   }\r
76 \r
77   /**\r
78    * Standardmethode, die die Funktionalitaet des ServletModules implementiert.\r
79    *\r
80    * @param req Http-Request, das vom Dispatcher durchgereicht wird\r
81    * @param res Http-Response, die vom Dispatcher durchgereicht wird\r
82    * @return String fuer Logfile\r
83    * @exception ServletModuleException\r
84    */\r
85   public void show(HttpServletRequest req, HttpServletResponse res) throws\r
86       ServletModuleExc {\r
87     try {\r
88       String idParam = req.getParameter("tmpl");\r
89       if (! (idParam == null || idParam.equals(""))) {\r
90         deliver(req, res, (TemplateModelRoot)null,\r
91                 "html/" + idParam + ".template");\r
92       }\r
93       else {\r
94         throw new ServletModuleExc("Invalid template: " + idParam);\r
95       }\r
96     }\r
97     catch (Throwable e) {\r
98       throw new ServletModuleFailure(e);\r
99     }\r
100   }\r
101 }\r
102 \r
103 \r
104 \r
105 \r