You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@struts.apache.org by Chetan Pandey <cp...@bluesingapore.com> on 2006/09/15 14:38:51 UTC

Validation

I have two controls in a Form. Both of them are drop-down. One has multiple
select enabled.

 

I want to validate such that if User chooses something in 

"prerequisiteVO.prerequisiteCourseId" drop-down then he must also choose
from drop-down "prerequisiteRole".

 

However since "prerequisiteRole" is a multiple select and is saved as an
array of int , what should I say in my "test" condition.

 

 

          <var-value>

((prerequisiteVO.prerequisiteCourseId == 0) or (prerequisiteRole.length >
0))

</var-value>

 

"prerequisiteRole.length" which I am using doesn't work.

 

My prerequisiteRole drop-down is like this 

 

'choose Role' Value = 0

'Role-1' Value = 1

'Role-2' Value = 2

 

I want to say that aleast one value greater than 1 has been selected.

 

I cannot say prerequisiteRole > 0 or *test* > 0 as it is not an int but an
array of int.

 

My validation looks like the following

 

        <field property="prerequisiteRole" depends="validwhen">

       <msg name="validwhen" key="errors.validwhen.prereq.role"/>

        <var>

          <var-name>test</var-name>

          <var-value>((prerequisiteVO.prerequisiteCourseId == 0) or
(prerequisiteRole.length > 0))</var-value>

        </var>

      </field>

 

Thanks.

 

Chetan