EL方法中的参数

时间:2011-06-13 21:14:28

标签: java jsp el

我想在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>

但即使它有效,我也想在JSP中使用纯EL。我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:6)

传递方法参数和调用非getter方法的支持在EL 2.2中引入,它是Servlet 3.0的一部分。因此,最好的办法是升级到Servlet 3.0兼容容器,例如Tomcat 7,Glassfish 3,JBoss AS 6,并确保您的web.xml声明符合Servlet 3.0规范,以便您可以执行以下操作: / p>

<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>