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 > > > > > > > > > >