1 package org.cacert.gigi.pages;
3 import java.io.IOException;
4 import java.util.HashMap;
6 import javax.servlet.http.HttpServletRequest;
7 import javax.servlet.http.HttpServletResponse;
9 import org.cacert.gigi.GigiApiException;
10 import org.cacert.gigi.output.template.Form;
12 public abstract class OneFormPage extends Page {
14 Class<? extends Form> c;
16 public OneFormPage(String title, Class<? extends Form> t) {
22 public void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException {
24 Form form = Form.getForm(req, c);
25 if (form.submit(resp.getWriter(), req)) {
26 resp.sendRedirect(getSuccessPath(form));
28 } catch (GigiApiException e) {
29 e.format(resp.getWriter(), getLanguage(req));
35 public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException {
37 c.getConstructor(HttpServletRequest.class).newInstance(req).output(resp.getWriter(), getLanguage(req), new HashMap<String, Object>());
38 } catch (ReflectiveOperationException e) {
39 new GigiApiException(e.getMessage()).format(resp.getWriter(), getLanguage(req));
43 public abstract String getSuccessPath(Form f);