Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Not A Problem
-
1.2 Family
-
None
-
None
Description
There seems to be some issue with validating integer arrays:
html:
<html:select property="types" multiple="true" size="3" >
<html:option value="1">should work</html:option>
<html:option value="2">should work as well</html:option>
<html:option value="blah">this will fail validation</html:option>
</html:select>
actionform:
public class PropertyFilter implements Serializable
{
private String[] types;
public String[] getTypes()
{ return types; }public void setTypes(String[] types)
{ this.types = types; }}
validation.xml:
<formset>
<form name="PropertyFilterForm">
<field property="types" depends="integer">
<arg0 key="text.validation.type"/>
</field>
</form>
</formset>
Even if all values are integer, it will fail validation regardless. According to http://www.strutskickstart.com/IndexedPropertiesandValidation.ppt#18 I should
do something like:
<field property="types" indexedListProperty="types" depends="integer">
<arg0 key="text.validation.type"/>
</field>
This time, it does indeed check all the values are of type integer, however,
if you do not select anything (the field is not required) the result is:
java.lang.NullPointerException
org.apache.commons.validator.Field.getIndexedProperty(Field.java:796)
org.apache.commons.validator.Field.validate(Field.java:891)
..
Also having scoured all documentation in current and future builds and there is no example of validating an integer array.