I'm using xf:itemset at the moment. Never seen the jx:ForEach before which gets back
to one of my original questions:
Are there any docs for jxForms yet? If so, where?
Regardless of whether I use the itemset or not, I can get my checkboxes to display
correctly on the screen.
The problem comes when I want to capture the state of the checkboxes.
If I define my model in javascript with a "var results[""]" then it works okay. I get
back an array of strings.
If I define my model in a Java Bean and pass it to the form after instantiating with
"var model = new Packages.path.class()",
then it doesn't work. If the bean defines the results as a String[], then I get the
cast exception (previous email). If I define results as a single String, then I get
the id of the first checked checkbox, but none of the others. I tried initializing my
array of Strings in my java class but it didn't make a difference whether it was or
not.
Right now I'm going with the slightly kludgy workaround of using a javascript model
for the form and then copying it to my Java Bean after submission.
> -----Original Message-----
> From: Christopher Oliver [SMTP:[EMAIL PROTECTED]
> Sent: Thursday, August 21, 2003 2:21 PM
> To: [EMAIL PROTECTED]
> Subject: Re: Checkboxes in JXForms - javascript OK, java NOT
>
> Why not use xf:itemset in this case instead of jx:forEach?
>
> Giacomo Pati wrote:
>
> >On Thu, 21 Aug 2003, Chris Clark wrote:
> >
> >
> >
> >>I think there may be a bug then...
> >>
> >>When I try to use a String array in my Java class, I get the following error:
> >>
> >>Exception trying to set value with xpath validchecks; Cannot modify property:
> >>elrsproto.FormBean.validchecks; Cannot convert value of class java.lang.String to
> >>type class [Ljava.lang.String;; Cannot convert class java.lang.String to class
> >>[Ljava.lang.String;
> >>
> >>That's why I tried to use just a straight String. And it works, except that it
> >>only gets the value of the first check.
> >>
> >>Whether I use the nodeset or not, I get the same behaviour.
> >>
> >>I did verify that I don't need to use the nodeset if I specify all of the controls
> >>ahead of time in the form definition. Thanks.
> >>
> >>For now my work-around is to use a javascript array object for the form and then
> >>copy it into my Java class. That works. Odd.
> >>
> >>
> >
> >Ok, let check:
> >
> >We use a Java Bean that has a:
> >
> > private String [] m_roles;
> >
> >which gets initialized with an array from a database and the array size
> >fits the numbers of item we've stored in the database (even a
> >'m_roles = new String[ 0 ]' works for us).
> >
> >with setter/getter
> >
> > public void setRoless( String [] roles )
> > {
> > m_roles = roles;
> > }
> > public String [] getRoless( )
> > {
> > return m_roles;
> > }
> >
> >and the form snipped we use look like:
> >
> > <xf:select ref="/roless" appearance="full">
> > <xf:label><i18n:text>ROLE</i18n:text></xf:label>
> > <jx:forEach var="role" items="${allRoles}">
> > <xf:item>
> > <xf:label>${role.name}</xf:label>
> > <xf:value>${role.name}</xf:value>
> > </xf:item>
> > </jx:forEach>
> > </xf:select>
> >
> >Hope this helps.
> >
> >--
> >Giacomo Pati
> >Otego AG, Switzerland - http://www.otego.com
> >Orixo, the XML business alliance - http://www.orixo.com
> >
> >
> >
> >
>
>