我们使用Jakarta Taglibs输出一些基本的 HTML 表单元素,例如选择。看来这个图书馆已经退休了..有什么好的替代品吗?寻找一些简单的东西,它将采用 Java Map
并将其输出为 HTML。
最佳答案
您可以使用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 来将模型与 View 绑定(bind)。例如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 将其与模型透明地绑定(bind),无需编写您自己的 Controller (servlet)。
关于java - Jakarta Taglibs 的良好替代品?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4019910/