• Post Reply Bookmark Topic Watch Topic
  • New Topic

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

Krishnappan Muthuraman
Posts: 22
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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
Posts: 157
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
Boost this thread!