Параметры в методах EL - PullRequest
       52

Параметры в методах EL

0 голосов
/ 14 июня 2011

Я хочу использовать метод в JSP с использованием EL, у которого есть параметр. Но EL не поддерживает параметры в методах. На самом деле я хочу показать таблицу, в которой есть поле, которое выводит список значений в одной ячейке. Для каждой ячейки этот список будет разным, это зависит от параметра. Как я могу сделать это, используя EL?

Я пробовал это, но он говорит, что он не может привести Integer к String в <c:set var="group" value="${entrant.idGroup}" /> где entrant.idGroup возвращаемое значение int

    <c:forEach var="entrant" items="${bean.entrants}">
                <tr>
            <td>${entrant.idEntrant}</td>
                    <c:set var="group" value="${entrant.idGroup}" />
                    <td><%=bean.getGroupCode(Integer.parseInt((String)pageContext.getAttribute("group")))%></td>
            <td>${entrant.name}</td>
     </c:forEach>

Но даже если это работает, я хочу использовать чистый EL в JSP. Как мне этого добиться?

1 Ответ

6 голосов
/ 14 июня 2011

Поддержка передачи аргументов метода и вызова не получающих методов была введена в EL 2.2, который является частью Servlet 3.0. Поэтому лучше всего перейти на контейнер, совместимый с Servlet 3.0, например Tomcat 7, Glassfish 3, JBoss AS 6 и убедиться, что ваш web.xml объявлен в соответствии со спецификацией Servlet 3.0, чтобы вы могли выполнять следующие действия:

<c:forEach var="entrant" items="${bean.entrants}">
    <tr>
        <td>${entrant.idEntrant}</td>
        <td>${bean.getGroupCode(entrant.idGroup)}</td>
        <td>${entrant.name}</td>
    </tr>
</c:forEach>

Если ваш контейнер не поддерживает его, то лучше всего создать собственную функцию EL.

        <td>${some:getGroupCode(bean, entrant.idGroup)}</td>
...