Jeremy-

Sorry you're still having problems.

Regarding the missing resource, I think it will either print out "null" (in the error-printing JSP code) or throw an exception if it cannot find a message resource so you should at least see something like that.

Are you sure validation is even being run? I.e., are your validation rules for other widgets being applied?

I think the contents of the select box are irrelevant as whatever value is selected (i.e., the value of the "value" attribute on the <option> element that is currently selected) will be the value used when the setEnterpriseName(String) method is called on your form bean.

Let's try this. try changing "validwhen" to "required" and make sure it validates the field has something in it. If that works, then we know your validation is working for that field and the problem is definately with "validwhen."

I fought with "validwhen" for two days before just using the validate() method on the ValidatorForm. Since server-side validation has to be done anyway, it's not like this detracts from the functionality.

-Adam

Jeremy Jardin wrote:
-Adam,

first, thanks for all those explications. but I've still a problem with
my
validator using 'validwhen'.

I've seen first, that I don't have any "errors.validwhen = mymessage"
line
in my messageResource file ?
I guess I need to add it and I did it.

Otherwise, I've now clearly understood (I think so...) how It work.. but
have a look .. I've tried that :

           <field property="enterpriseName" depends="validwhen">
               <arg0 key="error.inscription.entreprise.nom" />
               <var>
                   <var-name>test</var-name>
                   <var-value>((*this* ==  "hello"))</var-value>
               </var>
           </field>

I think it sould warn me each time my field is not "hello".. but it does
not.

I think now it's time to explain you clearly what I'm trying to do.

I've got a select tag wich determine if some fieds appear or not.
"if select value > 1, some input:text tags appears, and there aren't
present
is select value=1."

Maybe should I "hide" fields rather than "not display" fields.. ??

thx







On 7/25/06, Adam Gordon <[EMAIL PROTECTED]> wrote:

Jeremy-

Ok, sanity-check time.  Make sure your field names are all spelled
correctly.  Also, are any errors being output to the form?  I had
errors
displaying and it turned out that the validator was doing exactly what
I
was asking it to do and the problem was that I just didn't understand
the "validwhen" validation rule.

I've found that overriding toString() on my form bean and having it
dump
the contents of all the fields is an excellent way to see with what
values the bean is being populated.  You can then call
System.out.println(this) (or use a logger) in your bean's
validate(...)
method to see what values your bean has.  Make sure the
subscriptionType
is set to the value you expect.

Also, your rule basically reads now as "the field enterpriseName is
valid when the subscription type is greater than or equal to 1."   So,
e.g., if your subscription type is a drop down list that only contains
the values 1,2,3,4, the enterpriseName field will always be valid.

Give that a whirl and let us know.

cheers,

-Adam

Jeremy Jardin wrote:
> -Adam,
>
> I've just changed my conf like that :
>
>            <field property="enterpriseName"
>                depends="validwhen">
>                <arg0 key="error.inscription.entreprise.nom" />
>                <var>
>                    <var-name>test</var-name>
>                    <var-value>(subscriptionType>=1)</var-value>
>                </var>
>            </field>
>
> but, it still does not work..
>
> On 7/25/06, Adam Gordon <[EMAIL PROTECTED]> wrote:
>>
>> Jeremy-
>>
>> At first glance, I think you need to modify your parenthesis.  Per
the
>> Validation docs at
>> http://struts.apache.org/1.2.9/userGuide/dev_validator.html, only
two
>> items may be joined with "and" or "or."  I don't know if that means
> you
>> can only have a max of two items or a max of two items per
parends...
>>
>> Secondly, I had a bunch of problems with "validwhen" and finally
>> resorted to implementing my own solution in my ValidatorForm's
>> validate(...) method because it appears that 'validwhen' is rather
>> basic.  It basically says "field A is valid when..."  In my
> experience,
>> "validwhen" doesn't chain well with other validation rules.
>>
>> Alternatively, you could rewrite your rules to say:
> ((subscriptionType
>> >= 2) and (subscriptionType &lt;= 4)).  Note the &lt;, you'll get
>> errors if you use a < character.  I assume you validate that
>> subscriptionType is an integer on [1,4].  Also, you don't need
quotes
>> around the numbers.  Struts is smart enough to try numbers first
and
>> then if that doesn't work, it resorts to Strings.  Besides, I'm not
> sure
>> the functionality you want is to compare Strings using
inequalities...
>>
>> Hope this helps.
>>
>> -Adam
>>
>> Jeremy Jardin wrote:
>> > Hi,
>> >
>> > I'm trying to use struts plugin validator to check a big form..
and
> it
>> > works
>> > well.. but I've a little pb with validwhen constraint;
>> >
>> > I've written something like this :
>> >
>> >            <field property="enterpriseName"
>> >                depends="validwhen">
>> >                <arg0 key="error.inscription.entreprise.nom" />
>> >                <var>
>> >                    <var-name>test</var-name>
>> >                    <var-value>((subscriptionType=="2")or
>> > (subscriptionType=="3")or(subscriptionType=="4"))</var-value>
>> >                </var>
>> >            </field>
>> >
>> > I just want to check the field 'enterpriseName' is not empty when
I
>> > submit,
>> > but only if my select field 'subscriptionType" is more than 1.
(2,3
> or4)
>> >
>> > It does not work.
>> >
>> > why ??
>> >
>> >
>>
>>
---------------------------------------------------------------------
>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>> For additional commands, e-mail: [EMAIL PROTECTED]
>>
>>
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]





---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to