struts-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jeremy Jardin" <jeremy.jar...@gmail.com>
Subject Re: pb using validator with struts1.2.9
Date Wed, 26 Jul 2006 10:26:03 GMT
hum,

I mean my jsp is built dynamically.. so when my select box is set to "1",
my jsp is made with 4 fields.
But if my select box is set to "2", "3" or "4". my JSP page is made with 3
new fields.

And I think that "hide" means present but not visible.. and "not display"
means not present in the page.

I hope you'll understand, I'm sorry for my poor english.


SO, have a look at my jsp, it could be more comprehensive:

                  <html:select property="subscriptionType" styleId="inscrit"
styleClass="form" onchange="ChangeUrl(this.form)">
                      <html:option value="1"><bean:message key="
inscription.particulier"/></html:option>
                      <html:option value="2"><bean:message key="
inscription.membre.entreprise"/></html:option>
                      <html:option value="3"><bean:message key="
inscription.professionnel"/></html:option>
                      <html:option value="4"><bean:message key="
inscription.elu"/></html:option>
                  </html:select></td>
                </tr>

                <% String val = new String("1") ; %>

            <logic:notEqual  name="startSubscriptionForm"
property="subscriptionType" value="<%=val%>">

            <html:text property="enterpriseName" name="S_ENTREP"
styleId="nomentreprise" styleClass="form" size="20" value=""/>
            <html:text property="legalRepresentant" name="S_REPRES"
styleId="representant" styleClass="form" size="20"
              <html:text property="siren" styleId="siren" name="S_SIREN"
styleClass="form2" size="10" maxlength="14" value="" /></td>

            </logic:notEqual>

I just want those 3 fields (enterpriseName, legalRepresentant and siren) to
be required if select box != 1.


??

On 7/26/06, Irwan Nurwandi <irwan.nurwandi@gmail.com> wrote:
>
> Dear Jeremy ..
>
> what do you mean with "should I "hide" fields rather than "not
> display" fields.. ??",
> "hide" and "not display" are the same things isn't it :-)
>
> if you're expect the validwhen to manage hide and unhide HTML object,
> validwhen couldn't do such a thing.
>
> =====
> Taken from struts doc :
> [Since Struts 1.2.0] A frequent requirement in validation design is
> to validate one field against another (for example, if you have asked
> the user to type in a password twice for confirmation, to make sure
> that the values match.) In addition, there are fields in a form that
> may only be required if other fields have certain values. The
> validwhen  validation rule is designed to handle these cases.
> =====
>
> Otherwise, to manage hide and unhide HTML Object which is generated by
> Struts, you can create your own javascript function to hide/unhide the
> object, and then call the function manually using OnChange property in
> your select tag.
>
> Regards
> Irwan
>
> > 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 <adam.gordon@readytalk.com> 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 <adam.gordon@readytalk.com> 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: user-unsubscribe@struts.apache.org
> > > >> For additional commands, e-mail: user-help@struts.apache.org
> > > >>
> > > >>
> > > >
> > > >
> > >
> > > ---------------------------------------------------------------------
> > > To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
> > > For additional commands, e-mail: user-help@struts.apache.org
> > >
> > >
> >
> >
> > --
> > ~ jebmail ~
> >
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
> For additional commands, e-mail: user-help@struts.apache.org
>
>


-- 
~ jebmail ~

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message