3

这真让我吃惊!我的 JSP 中有以下代码。

<c:param name="title" value="${slideShow.title}" />

这段代码一直有效,直到我重构了 SlideShow 类并公开了所有属性并删除了 getter/setter。所以在我看来,EL 只适用于 getter 而不是直接属性访问。这是真的 ?有没有办法让它使用直接属性而不是通过 getter ?

4

1 回答 1

4

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);
}
于 2012-04-12T10:37:58.593 回答