wood burning stoves 2.0*
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

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

Krishnappan Muthuraman

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: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
subject: Struts Validation of options box (java.lang.String[])
Similar Threads
Client-side javascript validation not working with Struts
server side validation errors
Validation framework not working for multiple selections!!
What Are the Causes for Validation Not Doing Anything?
Why My Validation Lets All Errors Pass Through?