在循环内的jsp标记文件中访问变量?

时间:2009-10-10 05:30:32

标签: jsp file tags

我尝试创建一个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获取属性。但我不确定。谁知道这个?

2 个答案:

答案 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" %>