You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@struts.apache.org by raghavendra <ra...@globalcase.net> on 2005/07/19 11:48:52 UTC

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