You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@struts.apache.org by Václavík Radek <Ra...@zentiva.cz> on 2004/10/18 12:43:51 UTC
Indexed list validation
Hi all,
this is probably a constantly discussed topic and I have surely found a load
of inromation concerning this,but it still did not solve my problem.
I have a web page which displays multiple records, each record representing
one person. I am using index to retrieve each record.
The person is represented by bean Person:
public class Person {
.
.
private int monthlySalary;
public int getMonthlySalary() {
return monthlySalary;
}
public void setMonthlySalary(int monthlySalary) {
this.monthlySalary = monthlySalary;
}
.
.
}
I use this form for the action called:
public final class PersonalForm extends ValidatorForm{
.
.
private List persons;
public Person getPersons(int index) {
return (Person)persons.get(index);
}
public void setPersons(int index, Person value) {
persons.set(index, value);
}
.
.
}
and in the JSP, it looks like this:
<logic:iterate id="person" name="personalForm" property="persons"
indexId="index">
.
.
<html:text name="personalForm"
property='<%="persons["+index+"].monthlySalary"%>'
styleClass="monthlySalary"/>
.
.
</logic:iterate>
Everything works just fine. What doesn't work is the validation.
I have validation.xml looking like this:
<form name="personalForm">
<field property="monthlySalary"
indexedListProperty="persons"
depends="integer">
<arg0 key="errors.integer"/>
</field>
</form>
When the page is loaded, i get the following exception in Tomcat:
ERROR: in validateField
java.lang.NoSuchMethodException: Unknown property 'monthlySalary'
at
org.apache.commons.beanutils.PropertyUtils.getSimpleProperty(Property
Utils.java:1175)
at
org.apache.commons.beanutils.PropertyUtils.getNestedProperty(Property
Utils.java:772)
.
.
Where am I making mistake?
Thanks for suggetions.
Radek
_____________________________
Ing. Radek Václavík
ICS Department - webmaster
ZeNTIVA a.s.
U Kabelovny 130, 102 37 Praha 10
Czech Republic
tel. +420 267 243 296
_____________________________