]> WPIA git - gigi.git/blobdiff - src/org/cacert/gigi/pages/account/mail/MailAddForm.java
upd: enforce a more strict Form call pattern.
[gigi.git] / src / org / cacert / gigi / pages / account / mail / MailAddForm.java
index 94395947e52c8755ed99f9aad2b31046442b22e6..47cd8384e831ba7899a9b8b82a553f96afc1b1fe 100644 (file)
@@ -10,17 +10,15 @@ import org.cacert.gigi.dbObjects.EmailAddress;
 import org.cacert.gigi.dbObjects.User;
 import org.cacert.gigi.localisation.Language;
 import org.cacert.gigi.output.template.Form;
+import org.cacert.gigi.output.template.PlainOutputable;
 import org.cacert.gigi.output.template.Template;
 import org.cacert.gigi.pages.Page;
 
 public class MailAddForm extends Form {
 
-    private static Template t;
+    private static final Template t = new Template(MailAddForm.class.getResource("MailAddForm.templ"));;
 
     private String mail;
-    static {
-        t = new Template(MailAddForm.class.getResource("MailAddForm.templ"));
-    }
 
     private User target;
 
@@ -30,20 +28,15 @@ public class MailAddForm extends Form {
     }
 
     @Override
-    public boolean submit(PrintWriter out, HttpServletRequest req) {
+    public SubmissionResult submit(HttpServletRequest req) throws GigiApiException {
         String formMail = req.getParameter("newemail");
         mail = formMail;
         try {
-            EmailAddress addr = new EmailAddress(target, mail);
-            addr.insert(Page.getLanguage(req));
+            new EmailAddress(target, mail, Page.getLanguage(req).getLocale());
         } catch (IllegalArgumentException e) {
-            out.println("<div class='formError'>Error: Invalid address!</div>");
-            return false;
-        } catch (GigiApiException e) {
-            e.format(out, Page.getLanguage(req));
-            return false;
+            throw new GigiApiException(new PlainOutputable("Invalid address."));
         }
-        return true;
+        return new RedirectResult(MailOverview.DEFAULT_PATH);
     }
 
     @Override