Это правило помечает использование последовательности символов '#{' в файлах JSP.
В JSP 2.1 последовательность символов #{} является зарезервированным словом.
Использование старых файлов JSP, содержащих последовательность символов #{}, в JSP 2.1 приведет к ошибке.
Последовательность #{ обнаруживается при выполнении следующих условий:
- Версия сервлета (из файла web.xml) не ниже 2.4.
- У страницы не задана директива isELIgnored="true".
- Страница не связана с <url-pattern> в <jsp-property-group> (элемент <jsp-config> в файле web.xml), где <el-ignored> равен true.
- Последовательность #{ есть в тексте шаблона jsp.
- Запись присутствует в теге, который не является тегом JSF (Java Server Faces).
Правило обнаруживает теги JSF путем сравнения префикса тега со списком префиксов в свойстве "Пропустить теги с такими префиксами" правила.
Значения по умолчанию для обозначений префиксов JSF:
h,f,ui,facelet,composite,comp,ez.
Обратите внимание на следующие элементы:
- Пользователь должен добавить любые другие префиксы JSF, определенные в приложении, чтобы эти теги игнорировались.
- Пользователь должен удалить все префиксы из параметра префикса, которые используются на страницах JSP, но не в качестве тега JSF.
- Если префикс в одних случаях используется как префикс JSF, а в других - как обычный тег JSP, то пользователь должен не добавлять его в список параметра, но вручную проверить каждый созданный результат.
Автоматическое исправление добавит символ escape перед синтаксисом #{.
Пример:
|
<h1>This is an example of template text that will be detected: #{detected}</h1>
|
Автоматическое исправление изменит этот код на:
|
<h1>This is an example of template text that will be detected: \#{detected}</h1>
|
Также существуют различные способы отключить язык выражений (EL):
- Постранично для всех выражений EL разработчик может указать атрибут isELIgnored со значением
true в директиве page JSP
Пример:
|
<%@ page isELIgnored ="true" %>
|
Это выключит все выражения EL для этой страницы (i.e all
${exp} and #{exp}
)
- С помощью группы свойств JSP разработчик может отключить EL для одной страницы или
для нескольких страниц, соответствующих определенному шаблону URL, указав значение true
в элементе el-ignored
Например:
< span class="Code"> < jsp-property-group>
< url-pattern> *.jsp < /url-pattern>
< el-ignored> true < /el-ignored>
</jsp-property-group>
|
- С помощью группы свойств JSP в файле web.xml можно отключить только отложенный синтаксис EL (#{})
Например:
< span class="Code"> < jsp-property-group>
< url-pattern> *.jsp < /url-pattern>
< referred-syntax-almit.-as-literal> true < /deferred-syntax-almiter-as-
</jsp-property-group> |
- Постранично отключить только отложенный синтаксис EL, указав значение true в атрибуте deferred-syntax-allowed-as-literal директивы page JSP
Пример:
|
<%@ page deferredSyntaxAllowedAsLiteral="true" %>
|
Примечание о порядке следования:
Атрибуты isELIgnored и deferredSyntaxAllowedAsLiteral директивы page имеют приоритет перед
соответствующими элементами в файле web.xml.
Эти атрибуты директивы page переопределяют значения соответствующих элементов в файле web.xml.
Дополнительная информация: