struts-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From struts....@spamgourmet.com
Subject freemarker radio tag with map literals [solved, kind of]
Date Thu, 13 Oct 2011 19:15:38 GMT
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-unsubscribe@struts.apache.org
For additional commands, e-mail: user-help@struts.apache.org


Mime
View raw message