Я использую Tomcat 6.0.18 в Linux.
У меня есть 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
работает правильно, когда имя компонента указано правильно:
<!-- 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}? Есть ли какая-либо опция конфигурации, которая контролирует сообщения об ошибках в таких случаях?