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]

