这让我很惊讶!我的JSP中有以下代码。
<c:param name="title" value="${slideShow.title}" />
此代码正在运行,直到我重构了SlideShow类并将所有属性公开并删除了getter / setter。所以在我看来EL只能使用getter而不是直接属性访问。这是真的 ?有没有办法让它与直接属性一起工作而不是通过getter?
答案 0 :(得分:4)
JSP EL严格依赖于Java Bean规范,因此不能使用其他约定来访问属性值。
实际上,你可以读到这是StackOverflow EL tag description
因此可以调用非getter方法(不是属性),但仅限于某些EL vesion:
由于EL 2.2是作为Servlet 3.0 / JSP 2.2(Tomcat 7,Glassfish 3,JBoss AS 6等)的一部分维护的,因此可以在必要时使用参数调用非getter方法。
E.g。带有
的$ {bean.find(param.id)}
public Something find(String id) {
return someService.find(id);
}