Доступ к переменной в файлах тегов JSP внутри цикла? - PullRequest
1 голос
/ 10 октября 2009

Я пытаюсь создать файл тега 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 голосов
/ 14 апреля 2011

Добавить следующее. Скорее всего, ваша проблема в том, что ничего из тега "c" не обрабатывается.

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
0 голосов
/ 11 октября 2009

Попробуйте следующее:

Во-первых, преобразуйте ваш форматер в стандартный Java-бин (т.е. сделайте метод формата нестатичным, не используйте конструктор arg и т. Д.). Измените тег на:

<%@ tag import="package.Formatter" %>
<%@ attribute name="value" required="true" type="java.lang.Object" %> 
<jsp:useBean id="formatter" class="package.Formatter" />             
${formatter.format(value)}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...