我在Linux上運行Tomcat 6.0.18。JSP表達式語言錯誤行爲?
我有一個使用這樣的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>
在一些重構中,我錯過了發生名稱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?在這種情況下是否有一些控制錯誤報告的配置選項?
就肯定別人說什麼,這是EL的有意義的功能。 – Eddie 2009-05-26 19:42:58