LinuxでTomcat 6.0.18を実行しています。
次のような Bean を使用する JSP があります。
<jsp:useBean id="helper"
type="com.example.SomeType"
scope="request"/>
helper
このページは、次のような式言語での属性を参照しています。
<!-- This works properly, but could fail silently if the bean name is incorrect. -->
<div><p>Here's some stuff: ${helper.stuff}</div>
name の出現を見逃したいくつかのリファクタリング中に、名前が間違って記述されていてもエラーが発生helper
しないことに気付きました。画面にもログファイルにもありません。出力の式言語スニペットに対しては何も生成されません。helper
<!-- Wrong name! "foo" should be "helper" but no error is observed (other than missing ouput)! -->
<div><p>Here's some stuff: ${foo.stuff}</div>
現在、次の JSP 構文を間違った名前で使用すると、エラーが発生します (カスタム エラー ページが表示され、ログ ファイルに例外が表示されます) helper
。
<!-- Wrong name, but an error is raised. -->
<div><p>Here's some stuff: <jsp:getProperty name="foo" property="stuff"/></div>
この場合、ログには次のエントリが記録されます。
SEVERE: requestURI: /some.jsp servletName: jsp statusCode: 500
org.apache.jasper.JasperException: Attempted a bean operation on a null object.
完全をjsp:getProperty
期すために、Bean 名が正しい場合、構文は適切に機能します。
<!-- Works properly, protects me from an incorrect name, but is more verbose than EL. -->
<div><p>Here's some stuff: <jsp:getProperty name="helper" property="stuff"/></div>
${foo.stuff} を書いてもエラーが表示されないのはなぜですか? そのような場合にエラー報告を制御する構成オプションはありますか?