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
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[])