[ http://issues.apache.org/struts/browse/STR-2880?page=comments#action_37415 ]
Niall Pemberton commented on STR-2880: -------------------------------------- Firstly the only way to resolve this currently is to ensure that your "types" property returns a zero length array rather than null. I agree this looks like a bug - but it should be filed against Commons Validator rather than Struts. I'll try to find out if I can move this to Jakarta Commons (doesn't look like we can at the moment) - if not it will need to be closed and a new issue created for Commons Validator: http://jakarta.apache.org/commons/validator/issue-tracking.html > Validating integer arrays > ------------------------- > > Key: STR-2880 > URL: http://issues.apache.org/struts/browse/STR-2880 > Project: Struts Action 1 > Type: Bug > Components: Unknown > Versions: 1.2 Family > Reporter: thomas bailey > > 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. -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/struts/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira
