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;
@Override
public void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException {
- try {
- Form.getForm(req, c).submit(resp.getWriter(), req);
- } catch (GigiApiException e) {
- e.format(resp.getWriter(), getLanguage(req));
+ Form form = Form.getForm(req, c);
+ if (form.submitProtected(resp.getWriter(), req)) {
+ resp.sendRedirect(getSuccessPath(form));
}
}
try {
c.getConstructor(HttpServletRequest.class).newInstance(req).output(resp.getWriter(), getLanguage(req), new HashMap<String, Object>());
} 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);
+
}