This week's book giveaway is in the JDBC forum.
We're giving away four copies of Make it so: Java DB Connections & Transactions and have Marcho Behler on-line!
See this thread for details.
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 Make it so: Java DB Connections & Transactions this week in the JDBC 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

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

Krishnappan Muthuraman

Joined: Feb 16, 2004
Posts: 22
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:javascript formName="caSearchForm"/>


<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 name="caSearchForm">
<field property="value" depends="required">
<arg0 key="ca_search.val"/>
<field property="assets" depends="required">
<arg0 key="ca_search.assets"/>

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

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.

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:
subject: Struts Validation of options box (java.lang.String[])
It's not a secret anymore!