I am using DynaValidatorAction and
it works just fine, when starting "clean".
However, when I attempt to pre-populate
the object, the data never makes it to the
form. Anyone know why? What follows
is some snippets of files that should show
what I am doing.

=== struts-config.xml
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.0//EN" "http:/jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">


<struts-config>
 <form-beans>
   <!-- changeContactInfo -->
   <form-bean name="changeContactInfo"
              type="org.apache.struts.validator.DynaValidatorForm">
     <form-property name="contactInfoWidgetsSubFormFirstName"
                    type="java.lang.String"/>
...
   </form-bean>
...
 <global-forwards>
   <forward name="welcome" path="/home.do"/>
   <forward name="logon" path="/logon.do"/>
   <forward name="logout" path="/Logout.do"/>
...
   <forward name="changeContactInfo" path="/ChangeContactInfoSetup.do"/>
...
 </global-forwards>

 <action-mappings>
...
   <!-- changeContactInfo -->
   <action path="/ChangeContactInfoSetup"
           type="fi.els.action.ChangeContactInfoSetup">
     <forward name="success" path="/changeContactInfo.do"/>
     <!-- FIXME -->
     <forward name="failure" path="/changeContactInfo.do"/>
   </action>

   <action path="/changeContactInfo"
           type="org.apache.struts.actions.ForwardAction"
           parameter="tiles.changeContactInfo"/>

   <action path="/ChangeContactInfo"
           type="fi.els.action.ChangeContactInfo"
           name="changeContactInfo"
           validate="true"
           input="tiles.changeContactInfo"
           parameter="method">
     <forward name="success" path="/home.do"/>
     <forward name="cancel" path="/home.do"/>
   </action>
...
 </action-mappings>
...
 <plug-in className="org.apache.struts.validator.ValidatorPlugIn">
   <set-property property="pathnames"
                 value="/WEB-INF/validator-rules.xml,
                        /WEB-INF/validation.xml"/>
 </plug-in>

</struts-config>
=== validation.xml
<form-validation>
 <formset>
...
   <!-- Change Contact Info -->
   <form name="changeContactInfo">
     <field property="contactInfoWidgetsSubFormFirstName"
            depends="required,maxlength">
       <arg0 key="contactInfoWidgetsSubForm.label.firstName"/>
       <arg1 name="maxlength" key="${var:maxlength}" resource="false"/>
       <var>
         <var-name>maxlength</var-name>
         <var-value>24</var-value>
       </var>
     </field>
...
   </form>
 </formset>
</form-validation>
=== ChangeContactInfoSetup.java
package fi.els.action;
...
public class ChangeContactInfoSetup extends Action
{
   public ActionForward execute
   (
     ActionMapping mapping,
     ActionForm form,
     HttpServletRequest request,
     HttpServletResponse response
   ) throws Exception
   {
       User user = (User)request.getSession().getAttribute("user");

Connection connection = null;

       try
       {
           DynaValidatorForm vForm = new DynaValidatorForm();
...
           connection = dataSource.getConnection();
           Client client = Client.load(connection, user.getId());
           ContactInfo contactInfo = client.getContactInfo();
           vForm.set("contactInfoWidgetsSubFormFirstName",
            (contactInfo.getFirstName() != null) ?
            contactInfo.getFirstName() : "");
...
           request.getSession().setAttribute("changeContactInfo", vForm);
           return mapping.findForward("success");
       }
...
   }
}



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Reply via email to