DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT <http://nagoya.apache.org/bugzilla/show_bug.cgi?id=22121>. ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND INSERTED IN THE BUG DATABASE.
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=22121 The "required" validator doesn't work with String[] (multi-selects) Summary: The "required" validator doesn't work with String[] (multi-selects) Product: Commons Version: unspecified Platform: All OS/Version: All Status: NEW Severity: Enhancement Priority: Other Component: Validator AssignedTo: [EMAIL PROTECTED] ReportedBy: [EMAIL PROTECTED] The "required" validator doesn't work for String[] i.e. using multi-select input types. I fixed it locally on my machine, though, so here is what I did if you are interested: I changed the org.apache.commons.validator.ValidatorUtil.getValueAsString() method from: public static String getValueAsString(Object bean, String property) { Object value = null; try { value = PropertyUtils.getProperty(bean, property); } catch (Exception e) { log.error(e.getMessage(), e); } return (value != null ? value.toString() : null); } to: public static String getValueAsString(Object bean, String property) { Object value = null; try { value = PropertyUtils.getProperty(bean, property); } catch (Exception e) { log.error(e.getMessage(), e); } //Special case, check if String[] try { String[] valueArray = (String[])value; if(valueArray==null || valueArray.length==0) { value = null; } } catch(ClassCastException cce) { //Then it wasn't a String[] } return (value != null ? value.toString() : null); } I guess, just to be safe the second catch could catch type Exception instead but that is up to you. Anyway, it fixed my validation problem for String[] (multi-selects) and doesn't appear to have broken and validations which worked before. To sum up the problem and requested enhancement, I am using Struts (but it would happen the same way with HTML only) to submit an input of type select and multiple="true" and the validator framework does not detect if nothing is selected in that case. I traced down to the getValueAsString() method as the easiest place to add a fix / change so that the least impact could be made. Above is the code change I made on my local machine to fix "required" type validation for a multi-select input. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]