1 package org.cacert.gigi.pages;
3 import java.io.IOException;
6 import javax.servlet.ServletRequest;
7 import javax.servlet.http.HttpServletRequest;
8 import javax.servlet.http.HttpServletResponse;
10 import org.cacert.gigi.Language;
11 import org.cacert.gigi.output.template.Template;
14 * This class encapsulates a sub page of Gigi. A template residing nearby this
15 * class with name <className>.templ will be loaded automatically.
17 public abstract class Page {
21 private Template defaultTemplate;
23 public Page(String title) {
25 URL resource = getClass().getResource(getClass().getSimpleName() + ".templ");
26 if (resource != null) {
27 defaultTemplate = new Template(resource);
32 * Retrieves the default template (<className>.templ) which has
33 * already been loaded.
35 * @return the default template.
37 public Template getDefaultTemplate() {
38 return defaultTemplate;
42 * This method can be overridden to execute code and do stuff before the
43 * default template is applied.
46 * the request to handle.
48 * the response to write to
49 * @return true, if the request is consumed and the default template should
52 * if output goes wrong.
54 public boolean beforeTemplate(HttpServletRequest req, HttpServletResponse resp) throws IOException {
59 * This method is called to generate the content inside the default
63 * the request to handle.
65 * the response to write to
67 * if output goes wrong.
69 public abstract void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException;
72 * Same as {@link #doGet(HttpServletRequest, HttpServletResponse)} but for
73 * POST requests. By default they are redirected to
74 * {@link #doGet(HttpServletRequest, HttpServletResponse)};
77 * the request to handle.
79 * the response to write to
81 * if output goes wrong.
83 public void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException {
88 * Returns true, if this page requires login. Default is <code>true</code>
90 * @return if the page needs login.
92 public boolean needsLogin() {
96 public String getTitle() {
100 public void setTitle(String title) {
104 public static Language getLanguage(ServletRequest req) {
105 return Language.getInstance("de");
108 public static String translate(ServletRequest req, String string) {
109 Language l = getLanguage(req);
110 return l.getTranslation(string);