Хорошая альтернатива для Джакарты Taglibs? - PullRequest
0 голосов
/ 26 октября 2010

Мы используем Jakarta Taglibs для вывода некоторых базовых элементов формы HTML, таких как select.Похоже, эта библиотека была удалена ... есть ли хорошие альтернативы?Ищите что-то простое, которое возьмет Java Map и выведет его в HTML.

Ответы [ 2 ]

2 голосов
/ 26 октября 2010

Для этого вы можете использовать JSTL <c:forEach>. Каждая итерация возвращает Map.Entry, который, в свою очередь, имеет методы getKey() и getValue(). Предполагая, что у вас есть Map<String, String> со значениями параметров в качестве ключей карты и метками параметров в качестве значений карт, вот пример:

<select name="foo">
    <c:forEach items="${bean.map}" var="entry">
        <option value="${entry.key}" ${entry.key == param.foo ? 'selected' : ''}>${entry.value}</option>
    </c:forEach>
</select>

Что касается замены унаследованного Jakarta taglib, взгляните на MVC-фреймворки, которые предлагают taglibs для привязки модели к представлению. Например, Struts 1.x (по сути, небольшое развитие унаследованного Jakarta taglib), Struts 2.x (дальнейшее развитие) и JSF (другое эволюция в том же направлении, что и Struts 2.x).

Вот пример того, как визуализировать HTML <select> в JSF.

<h:selectOneMenu id="foo" value="#{bean.selectedItem}">
    <f:selectItems value="#{bean.selectItems}" />
</h:selectOneMenu>

JSF прозрачно связывает его с моделью без необходимости писать собственный контроллер (сервлет).

1 голос
/ 26 октября 2010

Этот проект был удален на чердак, поскольку почти все функции доступны с использованием стандартной реализации, встроенной в серверы приложений.

http://attic.apache.org/projects/jakarta-taglibs.html

Этот проект жив в http://tomcat.apache.org/taglibs/

...