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.User;
11 import org.cacert.gigi.localisation.Language;
12 import org.cacert.gigi.output.template.Template;
15 * This class encapsulates a sub page of Gigi. A template residing nearby this
16 * class with name <className>.templ will be loaded automatically.
18 public abstract class Page {
22 private Template defaultTemplate;
24 public Page(String title) {
26 URL resource = getClass().getResource(getClass().getSimpleName() + ".templ");
27 if (resource != null) {
28 defaultTemplate = new Template(resource);
33 * Retrieves the default template (<className>.templ) which has
34 * already been loaded.
36 * @return the default template.
38 public Template getDefaultTemplate() {
39 return defaultTemplate;
43 * This method can be overridden to execute code and do stuff before the
44 * default template is applied.
47 * the request to handle.
49 * the response to write to
50 * @return true, if the request is consumed and the default template should
53 * if output goes wrong.
55 public boolean beforeTemplate(HttpServletRequest req, HttpServletResponse resp) throws IOException {
60 * This method is called to generate the content inside the default
64 * the request to handle.
66 * the response to write to
68 * if output goes wrong.
70 public abstract void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException;
73 * Same as {@link #doGet(HttpServletRequest, HttpServletResponse)} but for
74 * POST requests. By default they are redirected to
75 * {@link #doGet(HttpServletRequest, HttpServletResponse)};
78 * the request to handle.
80 * the response to write to
82 * if output goes wrong.
84 public void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException {
89 * Returns true, if this page requires login. Default is <code>true</code>
91 * @return if the page needs login.
93 public boolean needsLogin() {
97 public String getTitle() {
101 public void setTitle(String title) {
105 public static Language getLanguage(ServletRequest req) {
106 return Language.getInstance("de");
109 public static String translate(ServletRequest req, String string) {
110 Language l = getLanguage(req);
111 return l.getTranslation(string);
114 public static User getUser(HttpServletRequest req) {
115 return LoginPage.getUser(req);