You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@struts.apache.org by hu...@apache.org on 2006/03/28 04:49:41 UTC

svn commit: r389370 - in /struts/sandbox/trunk/action2: ./ apps/mailreader/src/java/ apps/mailreader/src/java/mailreader2/ apps/mailreader/src/webapp/pages/

Author: husted
Date: Mon Mar 27 18:49:39 2006
New Revision: 389370

URL: http://svn.apache.org/viewcvs?rev=389370&view=rev
Log:
Action2 Apps
* Mailreader - Work in progress
** Add i18n support for coded fields 
** Add Javascript to set form focus


Added:
    struts/sandbox/trunk/action2/apps/mailreader/src/java/mailreader2/RegistrationSave-validation.xml   (with props)
    struts/sandbox/trunk/action2/apps/mailreader/src/java/mailreader2/RegistrationSave.java   (with props)
    struts/sandbox/trunk/action2/apps/mailreader/src/java/mailreader2/Subscription-validation.xml   (with props)
Modified:
    struts/sandbox/trunk/action2/README.txt
    struts/sandbox/trunk/action2/apps/mailreader/src/java/mailreader2/MailreaderSupport.java
    struts/sandbox/trunk/action2/apps/mailreader/src/java/mailreader2/Registration-validation.xml
    struts/sandbox/trunk/action2/apps/mailreader/src/java/mailreader2/Registration.java
    struts/sandbox/trunk/action2/apps/mailreader/src/java/xwork.xml
    struts/sandbox/trunk/action2/apps/mailreader/src/webapp/pages/Logon.jsp
    struts/sandbox/trunk/action2/apps/mailreader/src/webapp/pages/Registration.jsp
    struts/sandbox/trunk/action2/apps/mailreader/src/webapp/pages/Subscription.jsp

Modified: struts/sandbox/trunk/action2/README.txt
URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/action2/README.txt?rev=389370&r1=389369&r2=389370&view=diff
==============================================================================
--- struts/sandbox/trunk/action2/README.txt (original)
+++ struts/sandbox/trunk/action2/README.txt Mon Mar 27 18:49:39 2006
@@ -77,16 +77,13 @@
 Logon
 
 Nominal
-- Cancel (*)
++ Cancel
 + Reset
 - Submit (invalid) (*)
 + Submit (incorrect)
 + Submit
 
 Issues
-* Cancel
-** Cancel logs exceptions since the target properties on not on cancel action
-
 * Submit (invalid)
 ** The "errors.password.mismatch" is not being resolved as message
 
@@ -104,7 +101,7 @@
 Issues
 * Submit - no change
 ** Password is displayed in plain text
-** Is there a WW way to set the focus?
+** Is there a WW way to set the focus? (Asked in forum)
 * Edit - Submit (change)
 ** Password doesn't change when edited
 ** Password Confirmation message not displayed
@@ -142,11 +139,8 @@
 Logoff
 
 Nominal
-* Logoff - Refresh
-* Logoff - Skip to Registeration page (*)
-
-Issues
-* Skip to Registration - Displays blank Main Menu; Edit defaults to Create
++ Logoff - Refresh
++ Logoff - Skip to Registeration page
 
 ----
 
@@ -155,20 +149,17 @@
 Nominal
 + Cancel
 + Reset
-- Submit (no data)  (*)
-+ Submit (invalid data)
++ Submit (no data)
++ Submit (invalid data) (*)
 + Submit (data)
 - Submit (duplicate data) (*)
   Double submit
 
 Issues (*)
-* Submit
-** Not parsing message variables: {0} in the range {1}
-* Submit (duplidate data)
-** Fails silently for duplicate user name
-** Password Confirmation message not displayed
 * Submit (invalid data)
 ** When client-side validation is enabled, messages stack up on multiple invalid submits. Sever-side only OK.
+* Submit (duplidate data)
+** Fails silently for duplicate user name
 
 ----
 

Modified: struts/sandbox/trunk/action2/apps/mailreader/src/java/mailreader2/MailreaderSupport.java
URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/action2/apps/mailreader/src/java/mailreader2/MailreaderSupport.java?rev=389370&r1=389369&r2=389370&view=diff
==============================================================================
--- struts/sandbox/trunk/action2/apps/mailreader/src/java/mailreader2/MailreaderSupport.java (original)
+++ struts/sandbox/trunk/action2/apps/mailreader/src/java/mailreader2/MailreaderSupport.java Mon Mar 27 18:49:39 2006
@@ -318,7 +318,7 @@
             user = null;
         }
         if (user == null) {
-            this.addFieldError("password", "error.password.mismatch");
+            this.addFieldError("password", getText("error.password.mismatch"));
         }
         return user;
     }

Modified: struts/sandbox/trunk/action2/apps/mailreader/src/java/mailreader2/Registration-validation.xml
URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/action2/apps/mailreader/src/java/mailreader2/Registration-validation.xml?rev=389370&r1=389369&r2=389370&view=diff
==============================================================================
--- struts/sandbox/trunk/action2/apps/mailreader/src/java/mailreader2/Registration-validation.xml (original)
+++ struts/sandbox/trunk/action2/apps/mailreader/src/java/mailreader2/Registration-validation.xml Mon Mar 27 18:49:39 2006
@@ -8,24 +8,6 @@
         </field-validator>
     </field>
 
-    <field name="password">
-        <field-validator type="requiredstring">
-            <message key="error.password.required"/>
-        </field-validator>
-        <field-validator type="stringlength">
-            <param name="trim">true</param>
-            <param name="minLength">4</param>
-            <param name="maxLength">10</param>
-            <message key="errors.range"/>
-        </field-validator>
-    </field>
-
-    <field name="password2">
-        <field-validator type="requiredstring">
-            <message key="error.password2.required"/>
-        </field-validator>
-    </field>
-
     <field name="user.fullName">
         <field-validator type="requiredstring">
             <message key="error.fullName.required"/>
@@ -46,10 +28,5 @@
             <message key="errors.email"/>
         </field-validator>
     </field>
-
-    <validator type="expression">
-        <param name="expression">password eq password2</param>
-        <message key="error.password.match"/>
-    </validator>
 
 </validators>

Modified: struts/sandbox/trunk/action2/apps/mailreader/src/java/mailreader2/Registration.java
URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/action2/apps/mailreader/src/java/mailreader2/Registration.java?rev=389370&r1=389369&r2=389370&view=diff
==============================================================================
--- struts/sandbox/trunk/action2/apps/mailreader/src/java/mailreader2/Registration.java (original)
+++ struts/sandbox/trunk/action2/apps/mailreader/src/java/mailreader2/Registration.java Mon Mar 27 18:49:39 2006
@@ -6,7 +6,7 @@
 /**
  * <p>Insert or update a User object to the persistent store. </p>
  */
-public final class Registration extends MailreaderSupport {
+public class Registration extends MailreaderSupport {
 
     /**
      * <p>Double check that there is not a valid User logon. </p>
@@ -56,6 +56,21 @@
 
         if (creating) {
             copyUser(getUsername(), getPassword());
+        }
+        else {
+            // FIXME: Any way to call the RegisrationSave validators from here?
+            String pw = getPassword();
+            if (pw!=null) {
+                String pw2 = getPassword2();
+                boolean matches = ((null!=pw2) && (pw2.equals(pw)));
+                if (matches) {
+                    getUser().setPassword(pw);
+                }
+                else {
+                    addActionError(getText("error.password.match"));
+                    return INPUT;
+                }
+            }
         }
 
         saveUser();

Added: struts/sandbox/trunk/action2/apps/mailreader/src/java/mailreader2/RegistrationSave-validation.xml
URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/action2/apps/mailreader/src/java/mailreader2/RegistrationSave-validation.xml?rev=389370&view=auto
==============================================================================
--- struts/sandbox/trunk/action2/apps/mailreader/src/java/mailreader2/RegistrationSave-validation.xml (added)
+++ struts/sandbox/trunk/action2/apps/mailreader/src/java/mailreader2/RegistrationSave-validation.xml Mon Mar 27 18:49:39 2006
@@ -0,0 +1,28 @@
+<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.2//EN" "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
+
+<validators>
+
+    <field name="password">
+        <field-validator type="requiredstring">
+            <message key="error.password.required"/>
+        </field-validator>
+        <field-validator type="stringlength">
+            <param name="trim">true</param>
+            <param name="minLength">4</param>
+            <param name="maxLength">10</param>
+            <message key="errors.range"/>
+        </field-validator>
+    </field>
+
+    <field name="password2">
+        <field-validator type="requiredstring">
+            <message key="error.password2.required"/>
+        </field-validator>
+    </field>
+
+    <validator type="expression">
+        <param name="expression">password eq password2</param>
+        <message key="error.password.match"/>
+    </validator>
+
+</validators>

Propchange: struts/sandbox/trunk/action2/apps/mailreader/src/java/mailreader2/RegistrationSave-validation.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Added: struts/sandbox/trunk/action2/apps/mailreader/src/java/mailreader2/RegistrationSave.java
URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/action2/apps/mailreader/src/java/mailreader2/RegistrationSave.java?rev=389370&view=auto
==============================================================================
--- struts/sandbox/trunk/action2/apps/mailreader/src/java/mailreader2/RegistrationSave.java (added)
+++ struts/sandbox/trunk/action2/apps/mailreader/src/java/mailreader2/RegistrationSave.java Mon Mar 27 18:49:39 2006
@@ -0,0 +1,8 @@
+package mailreader2;
+
+/**
+ * <p>Stub class to allow extra validation on initial Save.</p>
+ */
+public final class RegistrationSave extends Registration {
+
+}

Propchange: struts/sandbox/trunk/action2/apps/mailreader/src/java/mailreader2/RegistrationSave.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: struts/sandbox/trunk/action2/apps/mailreader/src/java/mailreader2/Subscription-validation.xml
URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/action2/apps/mailreader/src/java/mailreader2/Subscription-validation.xml?rev=389370&view=auto
==============================================================================
--- struts/sandbox/trunk/action2/apps/mailreader/src/java/mailreader2/Subscription-validation.xml (added)
+++ struts/sandbox/trunk/action2/apps/mailreader/src/java/mailreader2/Subscription-validation.xml Mon Mar 27 18:49:39 2006
@@ -0,0 +1,11 @@
+<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.2//EN" "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
+
+<validators>
+
+    <field name="host">
+        <field-validator type="requiredstring">
+            <message key="error.host.required"/>
+        </field-validator>
+    </field>
+
+</validators>

Propchange: struts/sandbox/trunk/action2/apps/mailreader/src/java/mailreader2/Subscription-validation.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: struts/sandbox/trunk/action2/apps/mailreader/src/java/xwork.xml
URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/action2/apps/mailreader/src/java/xwork.xml?rev=389370&r1=389369&r2=389370&view=diff
==============================================================================
--- struts/sandbox/trunk/action2/apps/mailreader/src/java/xwork.xml (original)
+++ struts/sandbox/trunk/action2/apps/mailreader/src/java/xwork.xml Mon Mar 27 18:49:39 2006
@@ -19,7 +19,13 @@
 
         </global-exception-mappings>
 
-        <action name="Welcome">
+        <!--
+          The reference to MailReaderSupport is only needed because
+          we use Welcome as a target for Cancel actions.
+         If the page doesn't have the appropriate input properties,
+         the framework logs an exception.
+        -->
+        <action name="Welcome" class="mailreader2.MailreaderSupport">
             <result>/pages/Welcome.jsp</result>
         </action>
 
@@ -37,12 +43,18 @@
             <result>/pages/ChangePassword.jsp</result>
         </action>
 
+        <!-- See note for Welcome -->
         <action name="MainMenu" class="mailreader2.MailreaderSupport">
             <result>/pages/MainMenu.jsp</result>
             <result name="input">/pages/MainMenu.jsp</result>
         </action>
 
         <action name="Registration" class="mailreader2.Registration">
+            <result name="input">/pages/Registration.jsp</result>
+            <result type="redirect-action">MainMenu</result>
+        </action>
+
+        <action name="RegistrationSave" class="mailreader2.RegistrationSave">
             <result name="input">/pages/Registration.jsp</result>
             <result type="redirect-action">MainMenu</result>
         </action>

Modified: struts/sandbox/trunk/action2/apps/mailreader/src/webapp/pages/Logon.jsp
URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/action2/apps/mailreader/src/webapp/pages/Logon.jsp?rev=389370&r1=389369&r2=389370&view=diff
==============================================================================
--- struts/sandbox/trunk/action2/apps/mailreader/src/webapp/pages/Logon.jsp (original)
+++ struts/sandbox/trunk/action2/apps/mailreader/src/webapp/pages/Logon.jsp Mon Mar 27 18:49:39 2006
@@ -9,13 +9,13 @@
           type="text/css"/>
 </head>
 
-<body>
+<body onLoad="self.focus();document.Logon.username.focus()"  >
 
 <saf:actionerror />
 <saf:form method="POST" validate="true">
     <saf:textfield label="%{getText('username')}" name="username"/>
 
-    <saf:textfield label="%{getText('password')}" name="password"/>
+    <saf:password label="%{getText('password')}" name="password"/>
 
     <saf:submit value="%{getText('button.save')}"/>
 

Modified: struts/sandbox/trunk/action2/apps/mailreader/src/webapp/pages/Registration.jsp
URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/action2/apps/mailreader/src/webapp/pages/Registration.jsp?rev=389370&r1=389369&r2=389370&view=diff
==============================================================================
--- struts/sandbox/trunk/action2/apps/mailreader/src/webapp/pages/Registration.jsp (original)
+++ struts/sandbox/trunk/action2/apps/mailreader/src/webapp/pages/Registration.jsp Mon Mar 27 18:49:39 2006
@@ -14,7 +14,7 @@
           type="text/css"/>
 </head>
 
-<body>
+<body onLoad="self.focus();document.Registration.username.focus()"  >
 
 <saf:actionerror />
 <saf:form method="POST" validate="false">
@@ -27,9 +27,9 @@
         <saf:hidden name="username"/>
     </saf:else>
 
-    <saf:textfield label="%{getText('password')}" name="password"/>
+    <saf:password label="%{getText('password')}" name="password"/>
 
-    <saf:textfield label="%{getText('password2')}" name="password2"/>
+    <saf:password label="%{getText('password2')}" name="password2"/>
 
     <saf:textfield label="%{getText('fullName')}"
                    name="user.fullName"/>
@@ -40,15 +40,19 @@
     <saf:textfield label="%{getText('replyToAddress')}"
                    name="user.replyToAddress"/>
 
-    <saf:submit value="%{getText('button.save')}"/>
+    <saf:if test="task == 'Create'">
+        <saf:submit value="%{getText('button.save')}" action="RegistrationSave"/>
 
-    <saf:reset value="%{getText('button.reset')}"/>
+        <saf:reset value="%{getText('button.reset')}"/>
 
-    <saf:if test="task == 'Create'">
         <saf:submit action="Welcome" value="%{getText('button.cancel')}"
                     onclick="form.onsubmit=null"/>
     </saf:if>
     <saf:else>
+        <saf:submit value="%{getText('button.save')}" action="Registration"/>
+
+        <saf:reset value="%{getText('button.reset')}"/>
+
         <saf:submit action="MainMenu" value="%{getText('button.cancel')}"
                     onclick="form.onsubmit=null"/>
     </saf:else>

Modified: struts/sandbox/trunk/action2/apps/mailreader/src/webapp/pages/Subscription.jsp
URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/action2/apps/mailreader/src/webapp/pages/Subscription.jsp?rev=389370&r1=389369&r2=389370&view=diff
==============================================================================
--- struts/sandbox/trunk/action2/apps/mailreader/src/webapp/pages/Subscription.jsp (original)
+++ struts/sandbox/trunk/action2/apps/mailreader/src/webapp/pages/Subscription.jsp Mon Mar 27 18:49:39 2006
@@ -17,10 +17,10 @@
           type="text/css"/>
 </head>
 
-<body>
+<body onLoad="self.focus();document.Subscription.username.focus()"  >
 
 <saf:actionerror />
-<saf:form method="POST" action="SubscriptionSave" validate="true">
+<saf:form method="POST" action="SubscriptionSave" validate="false">
     <saf:hidden name="task"/>
     <saf:label label="%{getText('username')}" name="user.username"/>
 



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@struts.apache.org
For additional commands, e-mail: dev-help@struts.apache.org