我想在JSP中使用带有参数的EL的方法.但EL不支持方法中的参数.实际上我想显示一个表,它有一个输出一个单元格中的值列表的字段.对于每个单元格,此列表将不同,这取决于参数.我怎么能用EL做到这一点?
我试过这个,但是说它无法<c:set var="group" value="${entrant.idGroup}" />
在entrant.idGroup
返回int值的地方将Integer转换为String
<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>
Run Code Online (Sandbox Code Playgroud)
但即使它有效,我也想在JSP中使用纯EL.我怎样才能做到这一点?
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>
Run Code Online (Sandbox Code Playgroud)
如果您的容器不支持它,那么您最好的选择是创建自定义EL功能.
<td>${some:getGroupCode(bean, entrant.idGroup)}</td>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5871 次 |
最近记录: |