Hello all,

 

I am fairly new to Struts, and have my first application working from a db
and navigation standpoint. The last piece I am trying to get working is the
validation for my forms, many of which have indexed properties based on
DTOs. I user a LazyValidationForm, though I probably didn't need to, and all
my fields will validate except the indexed ones. 

 

Here is my struts-config, the jsp form, and the validation.xml, as well as
one of the DTOs. I am using JDK 1.5, Struts 1.2.7 and JSTL 1.1. I've looked
at every resource I can, gone from LazyValidatorForm to DynaValidatorForm
and back again, changed the validation, and nothing works. My validation
rules are simply ignored for the indexed properties. I figure at this point
I need fresh eyes to look at this and tell me what I'm doing wrong.

 

Here's the struts-config.xml -

 

            <form-bean name="newInterrogation"
type="org.apache.struts.validator.LazyValidatorForm">

                  <form-property name="interrogationDate"
type="java.lang.String"/>

                  <form-property name="underlyingRhythmID"
type="java.lang.String"/>                  

                  <form-property name="batteryVoltage"
type="java.lang.String"/>    

                  <form-property name="findings" type="java.lang.String"/>


                  <form-property name="deviceMsmnts"
type="ep.reporting.beans.DevicePartMeasurementTO[]"/>

                  <form-property name="modeSwitch" type="java.lang.String"/>

                  <form-property name="vTVFTherapyOption"
type="java.lang.String"/>

                  <form-property name="reprogramming"
type="java.lang.String"/>

                  <form-property name="comments" type="java.lang.String"/>

                  <form-property name="pmTherapyMode"
type="java.lang.String"/>

                  <form-property name="dfTherapies"
type="ep.reporting.beans.DefibTherapyTO[]"/>

                  <form-property name="implantedDevice"
type="java.lang.String"/>

                  <form-property name="deviceStateID"
type="java.lang.String"/>

            </form-bean>

 

The JSP form - 

 

<c:forEach items="${devicePartTypes}" var="deviceMsmnts" varStatus="count">

      <tr>

      <th>${deviceMsmnts.deviceType}</th>

      <td align="center">

      <html:text name="deviceMsmnts" property="prWave" size="3"
maxlength="5" value="" indexed="true" />

      <html:messages id="error"
property="deviceMsmnts[${count.index}]prWave" />

      </td>

      <td align="center">

<html:text name="deviceMsmnts" property="impedance" size="3" maxlength="5"
value="" indexed="true" />

<html:messages id="error" property="deviceMsmnts[${count.index}]impedance"
/>

</td>

      <td align="center">

<html:text name="deviceMsmnts" property="threshold" size="8" maxlength="15"
value="" indexed="true" />

<html:messages id="error" property="deviceMsmnts[${count.index}]threshold"
/>

 

<html:hidden name="deviceMsmnts" property="devicePartsTypeID"
value="${deviceMsmnts.deviceTypeID}" indexed="true" />

      </td>

      </tr>

</c:forEach>

 

Validation.xml -

 

<form-validation>

    <formset>

 

        <form name="vistaLoginForm">

            <field property="accessCode" depends="required">

                <arg0 key="prompt.accessCode"/>

             </field>

            <field property="verifyCode" depends="required">

                  <arg0 key="prompt.verifyCode"/>

            </field>

        </form>

        <form name="selectPatient">

            <field property="nameSSNSearch" depends="required">

                <arg0 key="prompt.nameSSNSearch"/>

             </field>

        </form>

        <form name="newInterrogation">

            <field property="interrogationDate" depends="required,date">

                <arg0 key="error.prompt.interrogationDate"/>

                        <var>

                              <var-name>datePattern</var-name>

                              <var-value>MM/dd/yyyy</var-value>

                        </var>

             </field>

            <field property="batteryVoltage" depends="required,float">

                <arg0 key="error.prompt.deviceMeasurement"/>

             </field>

                  <field property="prWave"
indexedListProperty="deviceMsmnts" depends="required,float">

                <arg0 key="error.prompt.deviceMeasurement"/>

            </field>

                  <field property="impedance"
indexedListProperty="deviceMsmnts" depends="required,float">

                <arg0 key="error.prompt.deviceMeasurement"/>

            </field>

                  <field property="dfRate" indexedListProperty="dfTherapies"
depends="required,float">

                <arg0 key="error.prompt.deviceMeasurement"/>

            </field>

                  <field property="dfTherapy"
indexedListProperty="dfTherapies" depends="required,float">

                <arg0 key="error.prompt.deviceMeasurement"/>

            </field>                

        </form>

 

    </formset>

 

And the DTO - 

 

package ep.reporting.beans;

 

import java.io.Serializable;

 

public class DevicePartMeasurementTO implements Serializable {

            

            private int devicePartsTypeID;

            private String devicePartsType;

            private float prWave;

            private float impedance;

            private String threshold;

            

            public DevicePartMeasurementTO()

            {

                        

            }

....getters and setters 

 

 

Thanks in advance for any pointers!

Jason Jones
[EMAIL PROTECTED]

 

Reply via email to