]> WPIA git - gigi.git/blobdiff - src/org/cacert/gigi/pages/OneFormPage.java
Merge remote-tracking branch 'origin/libs/scrypt/local'
[gigi.git] / src / org / cacert / gigi / pages / OneFormPage.java
index 6afee7097a26d9cd876edb6d5a38d8134456e2ce..e61511dc097c4e8e863bfb02dfa247d151e5943f 100644 (file)
@@ -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<? extends Form> 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);
         }
     }
 
@@ -36,4 +40,6 @@ public class OneFormPage extends Page {
         }
     }
 
+    public abstract String getSuccessPath(Form f);
+
 }