我尝试创建一个jsp标记文件,它将调用一个帮助类来打印输入对象。所以我创建了一个文件/WEB-INF/tags/formatter.tag
<%@ tag import="package.Formatter"%>
<%@ attribute name="value" required="true" type="java.lang.Object" %>
<%=Formatter.format(pageContext.getAttribute("value"))%>
所以我可以在JSP中调用它:
<t:formatter value="${obj}" />
但是我发现它在循环中不起作用,例如。
<c:forEach items="${list}" var="i">
<t:formatter value="${i.property}"/>
</c:forEach>
我怀疑我不应该从pageContext
获取属性。但我不确定。谁知道这个?
答案 0 :(得分:0)
尝试以下方法:
首先,将格式化程序转换为标准Java bean(即使格式方法非静态,没有arg构造函数等)。 ,将标签更改为:
<%@ tag import="package.Formatter" %>
<%@ attribute name="value" required="true" type="java.lang.Object" %>
<jsp:useBean id="formatter" class="package.Formatter" />
${formatter.format(value)}
答案 1 :(得分:0)
添加以下内容。很可能你的问题是“c”标签中的任何内容都没有得到处理。
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>