I'm having a hard time using the freemarker syntax radio tag.  This works fine:
<@s.radio name="cars" list=[ "ford", "toyota" ] />

But using a literal map does not:
<@s.radio name="cars" list={ "ford" : "mustang",  "toyota":"prius" } />

The web page renders:
"freemarker.ext.beans.HashAdapter$1$1$1@7e29d49f" as both the value and label.  
 I experimented with various listValue parameters to no avail.

Other things I've tried that also don't work:

* Creating a map using OGNL syntax:  list="#{  ... }" -- FM chokes on the # -- 
"expecting number" error
* using <@s.set name="carList" value="%{ #{ ... } }" />

If this is ever figured out it'd be great to note it in the examples section of 
this document:
http://struts.apache.org/2.2.3.1/docs/radio.html  (probably also the doc for 
select)

As well as mentioning freemarker map literal particulars on this document:
http://struts.apache.org/2.2.3/docs/freemarker-tags.html


UPDATE -- After a few hours and checking of source code, I came up with this 
solution:

<#assign cars = {'ford':'Fusion', 'toyota':'Prius'} />
<@s.radio name="cars" list=cars listKey="key" listValue="%{ getText( value ) }" 
/>

I would have expected it to work without the listKey and listValue attributes.
If you have additional insight I'd love to hear it.

Thanks,

-rgm

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscr...@struts.apache.org
For additional commands, e-mail: user-h...@struts.apache.org

Reply via email to