Хэш Freemarker для свойства списка тегов Struts2 @ s.select - PullRequest
2 голосов
/ 07 мая 2010

Я использую 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 следует использовать с тегом выбора Struts 2, чтобысделать следующий HTML-код?

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

1 Ответ

2 голосов
/ 07 мая 2010

Использование свойств listKey и listValue тега select, похоже, помогает.

Рабочий код теперь:

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

Похоже, этот тег должен автоматически обрабатываться, но я не смог заставить его работать без явной установки этих двух дополнительных свойств.

...