Struts2 @ s.select标签列表属性的Freemarker哈希值

时间:2010-05-07 18:57:33

标签: struts2 freemarker

我正在使用Freemarker作为Struts 2应用程序的模板引擎,并且在尝试将Freemarker哈希传递给@ s.select标记的列表值时遇到了一些问题。

目前我正在模板中尝试这样的事情:

<@s.select name="myDropdown" list={"1":"Foo", "2":"Bar", 3:"Baz"} />

生成的HTML是:

<select name="myDropdown" id="myDropdown">
    <option value="freemarker.ext.beans.HashAdapter$1$1$1@2c9bebb">freemarker.ext.beans.HashAdapter$1$1$1@2c9bebb</option>
    <option value="freemarker.ext.beans.HashAdapter$1$1$1@16ca4a">freemarker.ext.beans.HashAdapter$1$1$1@16ca4a</option>
    <option value="freemarker.ext.beans.HashAdapter$1$1$1@173ee8">freemarker.ext.beans.HashAdapter$1$1$1@173ee8</option>
</select>

根据文档看起来这应该可行,但实际上唯一的例子是使用Freemarker列表。哈希仅作为另一种选择提及,但我无法找到任何使用它们的代码示例。

最后我的问题是,为了呈现以下HTML,我应该使用Struts 2 select标签使用哪种Freemarker语法?

<select name="myDropdown" id="myDropdown">
    <option value="1">Foo</option>
    <option value="2">Bar</option>
    <option value="3">Baz</option>
</select>

1 个答案:

答案 0 :(得分:2)

使用select标签的listKey和listValue属性似乎可以解决问题。

现在的工作代码是:

<@s.select name="myDropdown" list={"1":"Foo", "2":"Bar", 3:"Baz"} listKey="key" listValue="value" />

似乎应该由标签自动处理,但如果没有明确设置这两个附加属性,我无法使其工作。