【问题标题】:Parameters in EL methodsEL 方法中的参数
【发布时间】:2011-06-13 21:14:27
【问题描述】:

我想在 JSP 中使用带有参数的 EL 方法。但是 EL 不支持方法中的参数。实际上我想展示一个表格,它有一个在一个单元格中输出值列表的字段。对于每个单元格,此列表将有所不同,这取决于参数。我怎样才能使用 EL 做到这一点?

我试过这个,但是说​​它不能将 Integer 转换为 String <c:set var="group" value="${entrant.idGroup}" /> where 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。我怎样才能做到这一点?

【问题讨论】:

标签: java jsp el


【解决方案1】:

EL 2.2 中引入了对传递方法参数和调用非 getter 方法的支持,它是 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>

【讨论】:

    猜你喜欢
    • 2013-09-29
    • 1970-01-01
    • 2011-03-18
    • 2013-03-25
    • 2012-01-09
    • 2015-04-18
    相关资源
    最近更新 更多