File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
http://aspose.com/file-tools
The moose likes Struts and the fly likes Struts Validation of options box (java.lang.String[]) Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of EJB 3 in Action this week in the EJB and other Java EE Technologies forum!
JavaRanch » Java Forums » Frameworks » Struts
Bookmark "Struts Validation of options box (java.lang.String[])" Watch "Struts Validation of options box (java.lang.String[])" New topic
Author

Struts Validation of options box (java.lang.String[])

Krishnappan Muthuraman
Greenhorn

Joined: Feb 16, 2004
Posts: 21
I am using struts and the ValidatorPlugIn. I am having some issues trying to validate input for an options box. I have the validation working correctly if within the struts-config.xml file the form-property type="java.lang.String" (I can validate the form-property value in the example listed below).

My issue is that I can't validate when the form-property is of type="java.lang.String[]" (I can't validate the form-property assets in the example listed below). Do I need to include something in the validation.xml that indicates I am working with type="java.lang.String[]"

ca_search.jsp (snippets):

<html:form action="/caSearch" target="main" onsubmit="return validateCaSearchForm(this);">

<html:select size="3" property="assets" style="news" multiple="true">
<html ptions collection="assetTypes" property="property" labelProperty="labelProperty"/>
</html:select>

<html:javascript formName="caSearchForm"/>


struts-config.xml:

<form-bean name="caSearchForm" type="org.apache.struts.validator.DynaValidatorForm">
<form-property name="assets" type="java.lang.String[]" />
<form-property name="value" type="java.lang.String" />
<form-property name="sites" type="java.lang.String" />
<form-property name="searchFor" type="java.lang.String" />
<form-property name="sortBy" type="java.lang.String" />
<form-property name="departments" type="java.lang.String" />
<form-property name="action" type="java.lang.String" />
</form-bean>


validation.xml:

<form name="caSearchForm">
<field property="value" depends="required">
<arg0 key="ca_search.val"/>
</field>
<field property="assets" depends="required">
<arg0 key="ca_search.assets"/>
</field>
</form>


Again, I have the validation working correctly when form-property is of type="java.lang.String". I can't however validate when the form-property is of type="java.lang.String[]".
Sheldon Fernandes
Ranch Hand

Joined: Aug 18, 2004
Posts: 157
Try using the "indexedListProperty" of the field attribute.

Extract from validator DTD file:

<!--
The "field" element defines the properties to be validated. In a
web application, a field would also correspond to a control on
a HTML form. To validate the properties, the validator works through
a JavaBean representation. The field element can accept up to 4
attributes:

property The property on the JavaBean corresponding to this
field element.

depends The comma-delimited list of validators to apply against
this field. For the field to succeed, all the
validators must succeed.

page The JavaBean corresponding to this form may include
a page property. Only fields with a "page" attribute
value that is equal to or less than the page property
on the form JavaBean are processed. This is useful when
using a "wizard" approach to completing a large form,
to ensure that a page is not skipped.
[0]

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 for this field.

-->


validation.xml change:


Sheldon Fernandes
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: Struts Validation of options box (java.lang.String[])
 
Similar Threads
What Are the Causes for Validation Not Doing Anything?
Validation framework not working for multiple selections!!
server side validation errors
Why My Validation Lets All Errors Pass Through?
Client-side javascript validation not working with Struts