这真让我吃惊!我的 JSP 中有以下代码。
<c:param name="title" value="${slideShow.title}" />
这段代码一直有效,直到我重构了 SlideShow 类并公开了所有属性并删除了 getter/setter。所以在我看来,EL 只适用于 getter 而不是直接属性访问。这是真的 ?有没有办法让它使用直接属性而不是通过 getter ?
JSP EL 严格依赖于 Java Bean 规范,因此它不能使用其他约定来访问属性值。
实际上,您可以阅读有关StackOverflow EL 标签描述的信息
因此可以调用非 getter 方法(不是属性),但只能从某些 EL 版本调用:
从 EL 2.2 开始,它作为 Servlet 3.0 / JSP 2.2(Tomcat 7、Glassfish 3、JBoss AS 6 等)的一部分进行维护,如果需要,可以使用参数调用非 getter 方法。
例如 ${bean.find(param.id)} 与
public Something find(String id) {
return someService.find(id);
}