3

これには本当に驚きました!JSP に次のコードがあります。

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

このコードは、SlideShow クラスをリファクタリングし、すべての属性を公開してゲッター/セッターを削除するまで機能していました。したがって、ELはゲッターでのみ機能し、直接属性アクセスでは機能しないように思えます。これは本当ですか ?ゲッターを経由する代わりに、直接属性で動作させる方法はありますか?

4

1 に答える 1

4

JSP EL は Java Bean 仕様に厳密に依存しているため、他の規則を使用してプロパティ値にアクセスすることはできません。

実際、これについて読むことができるのはStackOverflow ELタグの説明です

そのため、getter 以外のメソッド (属性ではない) を呼び出すことは可能ですが、特定の EL バージョンからのみ可能です:

Servlet 3.0 / JSP 2.2 (Tomcat 7、Glassfish 3、JBoss AS 6 など) の一部として維持されている EL 2.2 以降、必要に応じて引数を使用して非 getter メソッドを呼び出すことができます。

例: ${bean.find(param.id)} で

public Something find(String id) {
    return someService.find(id);
}
于 2012-04-12T10:37:58.593 に答える