雅加达Taglibs的好替代品?

时间:2010-10-26 00:42:33

标签: java html jsp taglib

我们使用Jakarta Taglibs输出一些基本的HTML表单元素,例如choose。看来这个图书馆已经退役了..有没有好的替补?寻找简单的东西,将Java Map输出并输出到HTML。

2 个答案:

答案 0 :(得分:2)

您可以使用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框架,它提供了用于将模型与视图绑定的taglib。例如Struts 1.x(实质上是遗留的Jakarta taglib的轻微演变),Struts 2.x(进一步演化)和JSF(与Struts 2.x在同一方向上的另一个演变)。

以下是如何在JSF中呈现HTML <select>的示例。

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

JSF透明地将它与模型绑定,而无需编写自己的控制器(servlet)。

答案 1 :(得分:1)

这个项目已经退役到阁楼,因为几乎所有的功能都是使用应用服务器中的标准实现。

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

这个项目在http://tomcat.apache.org/taglibs/

中存在