Hi BHansard it works fine the following way ok tks bye. <html:radio property="expectedVia" value='<%=(String)((java.util.HashMap)row).get("VALUE")%>' /> Regards Raghavendra.E -------------------------- Programmer Analyst StinGray Technologies PVT LTD. ODC, GlobalCase Technologies Inc. B-10,Sector-1,Udyog Marg, Noida-201 301(NCR-Delhi)INDIA. Cell:09891104775 Phone-91-120-2537825 Ext-206 -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Sent: Tuesday, July 19, 2005 6:06 PM To: Struts Users Mailing List Subject: re: Problem in Struts Tags the problem is that row is a generic object until you cast it i think. I have used this in then past by using syntax like <html:radio ... value="<%=(String)((java.util.HashMap)row).get("VALUE")%>" > Looks ugly but it works.
Note: I have not used it with a HashMap, but have with custom objects like ((com.app.Customer) cust).getName() so i am guessing you would have to cast the get to a string as it will return a generic object as well. Inactive hide details for Paul Moody <[EMAIL PROTECTED]>Paul Moody <[EMAIL PROTECTED]> Paul Moody <[EMAIL PROTECTED]> 07/19/2005 07:53 AM Please respond to "Struts Users Mailing List" <user@struts.apache.org> To 'Struts Users Mailing List' <user@struts.apache.org> cc Subject re: Problem in Struts Tags I did a quick test and it seems that having the <html:radio ... value="<%=row.get("VALUE")%>" > fails for me too. The output html contains <html:radio ...> instead of <input type="radio" ...>. Doing the following worked: <% String val = (String) row.get("VALUE"); %> <html:radio .... value="<%=val%> /> Anyway, in general I don't like seeing scriptlets in jsps. I think your first method looked better to me with a Collection of beans containing properties. I think you can then use the following: <html:radio property="xxx" idName="row" value="value" /> which will look in the bean exposed by the iterate tag and use its value property. Good luck. Paul Moody --- raghavendra <[EMAIL PROTECTED]> wrote: > Hi paulsmoody > > This just a sample program I know UI labels are not > good, Hard coded in > Action class. > Main problem is value="<%=row.get("VALUE")%>" line > not complied in JSP > page why? > <logic:iterate id="row" name="data" > type="java.util.HashMap"> > <html:radio property="expectedVia" > value="<%=row.get("VALUE")%>"/> > </logic:iterate> > -----Original Message----- > From: Paul Moody [mailto:[EMAIL PROTECTED] > Sent: Tuesday, July 19, 2005 3:38 PM > To: Struts Users Mailing List > Subject: RE: Problem in Struts Tags > > I would expect you to have a problem with the jsp. > You > have an ArrayList with each element being a Map. > When > you iterate over the ArrayList with the > logic:iterate > tag each element, identified by "row", is a Map. > This > means that the "<bean:write name="row" > property="label"/>" will fail because there is no > getLabel method for the Map. > > You could try a <%=row.get("LABEL)%> to get the > stored > label from the Map which should work. > > However, I am not sure this is the best solution as > you are coding your UI labels in your Action which > is > not best practice as far as I know. > > Hope this was of help. > > Paul Moody > > --- raghavendra <[EMAIL PROTECTED]> > wrote: > > > > > Please first under stand the problem, the problem > in > > jsp page. Why the > > jsp page does't complile. Try the following code > in > > u r system. > > > > <logic:iterate id="row" name="data" > > type="java.util.HashMap"> > > <html:radio property="expectedValue" > > value="<%=row.get("VALUE")%>"/> > > <bean:write name="row" property="label"/> > > </logic:iterate> > > > > OR > > <logic:iterate id="row" name="data" > > type="java.util.HashMap"> > > <% String value=(String)row.get("VALUE"); %> > > <html:radio property="expectedValue" > > value="<%=row.get(value)%>"/> > > <bean:write name="row" property="label"/> > > </logic:iterate> > > OR > > > > <logic:iterate id="row" name="data" > scope="request"> > > > > <input type="radio" name="expectedVia" > > value="<bean:write name="row" > > property="VALUE"/>"/> > > <bean:write name="row" property="LABLE"/> > > </logic:iterate> > > > > > > -----Original Message----- > > From: Marsh-Bourdon, Christopher > > [mailto:[EMAIL PROTECTED] > > Sent: Tuesday, July 19, 2005 3:21 PM > > To: 'Struts Users Mailing List'; > > [EMAIL PROTECTED] > > Cc: [EMAIL PROTECTED] > > Subject: RE: Problem in Struts Tags > > > > You are adding the HashMap as an item to the > > ArrayList, not replacing > > the > > contents of the ArrayList with the contents of the > > HashMap. Try this: > > > > List shippers = new ArrayList(map); > > > > Instead of: > > > > shippers.add(map); > > > > And get rid of: > > > > ArrayList shippers = new ArrayList(); > > > > Cheers > > > > Christopher Marsh-Bourdon > > www.marsh-bourdon.com > > > > -----Original Message----- > > From: raghavendra > > [mailto:[EMAIL PROTECTED] > > Sent: 19 July 2005 10:55 > > To: [EMAIL PROTECTED] > > Cc: [EMAIL PROTECTED]; > > user@struts.apache.org > > Subject: Problem in Struts Tags > > > > > > Hi All > > See the following code > > > > In action class I had written like > > > > ArrayList shippers = new ArrayList(); > > shippers.add(new LabelValueBean("UPS", "UPS")); > > shippers.add(new LabelValueBean("Federal > Express", > > "FEDX")); > > shippers.add(new LabelValueBean("AirBorne", > > "AIRB")); > > request.setAttribute ("SHIPPERS",shippers); > > > > > > And Jsp page written like > > > > <logic:iterate id="row" name="SHIPPERS" > > > type="org.apache.commons.scaffold.util.LabelValueBean"> > > <html:radio property="expectedValue" > > value="<%=row.getValue()%>"/> > > <bean:write name="row" property="label"/> > > </logic:iterate> > > > > the above code working fine if u select any value > > and click submit and > > returns the same page back the selected radio > > button value is there . > > So long as one of the values matches the > > "expectedVia" property on our > > ActionForm, the radio tag will still automatically > > select the > > appropriate > > button. > > But I try to use Hash Map in the following way > but, > > WHY IT'S NOT WORK. > > Values matches the "expectedVia" property on our > > ActionForm, the radio > > tag will not select > > The appropriate value .tell me the reason. > > > > In Action class > > > > > > ArrayList shippers = new ArrayList(); > > for(int i=0; i<=1; i++){ > > HashMap map=new HashMap(); > > map.put("VALUE", "UPS"+i); > > map.put("LABLE", "UPS"+i); > > map.put("VALUE", "AIRB0"+i); > > shippers.add(map); > > } > > request.setAttribute > ("data",shippers); > > > > in jsp I tried in the following ways to display > > .the selected the value > > is > > not there the same page send returns back. > > > > <logic:iterate id="row" name="data" > > type="java.util.HashMap"> > > <html:radio property="expectedValue" > > value="<%=row.get("VALUE")%>"/> > > <bean:write name="row" property="label"/> > > </logic:iterate> > > > > OR > > <logic:iterate id="row" name="data" > > type="java.util.HashMap"> > > <% String value=(String)row.get("VALUE"); %> > > <html:radio property="expectedValue" > > value="<%=row.get(value)%>"/> > > <bean:write name="row" property="label"/> > > </logic:iterate> > > OR > > > === message truncated === ___________________________________________________________ Yahoo! Messenger - NEW crystal clear PC to PC calling worldwide with voicemail http://uk.messenger.yahoo.com --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]