X-Git-Url: https://code.wpia.club/?a=blobdiff_plain;f=src%2Forg%2Fcacert%2Fgigi%2Fpages%2FOneFormPage.java;h=c1e075cbac73ef6cbebee8e20f7c1fc5707aff0e;hb=fd2e924e81090ea19e3b1c38d6d5417492668e20;hp=6afee7097a26d9cd876edb6d5a38d8134456e2ce;hpb=cd14b85c60f736a643842b421b11f41d8fca86c7;p=gigi.git diff --git a/src/org/cacert/gigi/pages/OneFormPage.java b/src/org/cacert/gigi/pages/OneFormPage.java index 6afee709..c1e075cb 100644 --- a/src/org/cacert/gigi/pages/OneFormPage.java +++ b/src/org/cacert/gigi/pages/OneFormPage.java @@ -9,7 +9,7 @@ import javax.servlet.http.HttpServletResponse; import org.cacert.gigi.GigiApiException; import org.cacert.gigi.output.template.Form; -public class OneFormPage extends Page { +public abstract class OneFormPage extends Page { Class c; @@ -21,9 +21,13 @@ public class OneFormPage extends Page { @Override public void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException { try { - Form.getForm(req, c).submit(resp.getWriter(), req); + Form form = Form.getForm(req, c); + if (form.submit(resp.getWriter(), req)) { + resp.sendRedirect(getSuccessPath(form)); + } } catch (GigiApiException e) { e.format(resp.getWriter(), getLanguage(req)); + doGet(req, resp); } } @@ -32,8 +36,10 @@ public class OneFormPage extends Page { try { c.getConstructor(HttpServletRequest.class).newInstance(req).output(resp.getWriter(), getLanguage(req), new HashMap()); } catch (ReflectiveOperationException e) { - new GigiApiException(e.getMessage()).format(resp.getWriter(), getLanguage(req)); + new GigiApiException().format(resp.getWriter(), getLanguage(req)); } } + public abstract String getSuccessPath(Form f); + }