DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUGĀ· RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT <http://issues.apache.org/bugzilla/show_bug.cgi?id=38133>. ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED ANDĀ· INSERTED IN THE BUG DATABASE.
http://issues.apache.org/bugzilla/show_bug.cgi?id=38133 Summary: [validator] [patch] Enhance form to handle nested forms (beans) Product: Commons Version: 1.2 Final Platform: Other OS/Version: other Status: NEW Severity: enhancement Priority: P1 Component: Validator AssignedTo: commons-dev@jakarta.apache.org ReportedBy: [EMAIL PROTECTED] CC: dev@struts.apache.org It was initialy discussed in the bug http://issues.apache.org/bugzilla/show_bug.cgi?id=16394 but I recognized that the author wanted a little bit different feature. Generally validator doesn't support validation of nested beans/forms. Current IndexedListProperty implementation allows it only for one nested bean, it is not sufficient for complex forms/beans (many nested levels), it is rather workaround than full implementation. It also doesn't correspond to Struts nested tag (and validator is mainly used by Struts). Patch is included, it is based on latest validator1.2.0 svn. Form tag can now include nested tag as (it is in dtd_1.2.1): <!-- Defines the nested beans to be validated. Two way of nested beans are possible: simple - accessed by property and 'indexed'- accessed by indexed property. Nested validation supports any level of nested beans. The idea and usage is similar to nested tag in Struts taglib. The nested element accepts these attributes: property The property on the JavaBean corresponding to this nested element. indexedListProperty The "indexedListProperty" is the method name that will return an array or a Collection used to retrieve the list and then loop through the list performing the validations on the bean. type The type/name of the nested bean which will be validated. The validation rules are described as standard form tag with the same name as specified for type. One and exactly one of property and indexedListProperty can be specified exclusively. --> <!ELEMENT nested (msg|arg|var)*> <!ATTLIST nested property CDATA #IMPLIED> <!ATTLIST nested indexedListProperty CDATA #IMPLIED> <!ATTLIST nested type CDATA #REQUIRED> Example usage is: <form-validation> <global> <validator name="byte" classname="org.apache.commons.validator.TestValidator" method="validateByte" methodParams="java.lang.Object,org.apache.commons.validator.Field" msg=""/> </global> <formset> <form name="complexForm"> <field property="value" depends="byte"/> <nested property="subForm" type="subForm1"/> <nested indexedListProperty="listSubForms" type="subForm2"/> <nested indexedListProperty="listComplexSubForms" type="subFormComplex"/> </form> <form name="subForm1"> <field property="value" depends="byte"/> </form> <form name="subForm2" extends="subForm1"> </form> <form name="subFormComplex"> <field property="value" depends="byte"/> <nested property="subForm" type="subForm1"/> <nested indexedListProperty="listSubForms" type="subForm2"/> </form> </formset> </form-validation> There is test included (NestedTest.java), see there NestedTest-config.xml and how to use nested tag. Currently I tested it in our STRUTS project, it works correctly for 2 level nested beans. Please give me any feedback, reports, bugs, etc. I hope that there is a chance to have it merged in the source base. -- Configure bugmail: http://issues.apache.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug, or are watching someone who is. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]