Я запускаю Tomcat 6.0.18 на Linux.Ошибка поведения языка выражения JSP?
У меня есть 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}? Есть ли какой-либо параметр конфигурации, который контролирует отчет об ошибках в таких случаях?
Просто утверждающие, что говорили другие, это целенаправленная особенность EL. – Eddie