代码之家  ›  专栏  ›  技术社区  ›  Mike Deck

struts2@s的freemarker哈希。选择标记的列表属性

  •  2
  • Mike Deck  · 技术社区  · 15 年前

    我使用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>
    

    从文档来看,这似乎应该是可行的,但实际上唯一的例子是使用自由标记列表。散列只是作为另一个选项提到的,但是我还没有找到任何使用它们的代码示例。

    最后我的问题是,为了呈现下面的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 回复  |  直到 15 年前
        1
  •  2
  •   Mike Deck    15 年前

    使用select标记的listkey和listvalue属性似乎可以做到这一点。

    工作代码现在是:

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

    这似乎应该由标记自动处理,但如果不显式设置这两个附加属性,我就无法使它工作。

    推荐文章