Toto pravidlo označí příznakem použití posloupnosti '#{' v souborech JSP.
V technologii JSP 2.1 je nyní syntaxe #{} vyhrazené klíčové slovo.
Když se používají starší soubory JSP, které obsahují posloupnost #{} v JSP 2.1, budou generovat chybu.
K tomu, abyste mohli zjistit posloupnost #{ následujících podmínek, musí být splněno:
- Verze servletu (ze souboru web.xml) musí být 2.4 nebo vyšší.
- Stránka nemá direktivu sady isELIgnored="true".
- Stránka nemapuje na <url-pattern> v <jsp-property-group> (z <jsp-config> v souboru web.xml) s hodnotou <el-ignored> nastavenou na true.
- Položka #{ je v textu šablony jsp.
- Položka je ve značce, která není značkou Java Server Faces (JSF).
Pravidlo zjistí značky JSF porovnáním předpony značky se seznamem předpon poskytnutých ve vlastnosti pravidla s názvem "Vynechat značky pomocí těchto předpon".
Výchozí hodnoty vynechaných předpon JSF jsou:
h,f,ui,facelet,composite,comp,ez.
Všimněte si následujících položek:
- Uživatel by měl přidat další předpony JSF definované jejich aplikací, aby bylo možné tyto značky ignorovat.
- Uživatel by měl odebrat jakoukoli položky z parametru předpony, pokud se předpona používá na stránkách JSP, ale nikoli pro značku JSF.
- Je-li v některých případech předpona použita jako předpona JSF a jako normální značka JSP v jiných případech, uživatel by neměl zahrnovat předponu v seznamu parametrů a měl by každý generovaný výsledek prozkoumat ručně.
Automatická oprava přidá znak escape před syntaxi #{.
Příklad:
|
<h1>This is an example of template text that will be detected: #{detected}</h1>
|
Automatická oprava změní tento kód na:
|
<h1>This is an example of template text that will be detected: \#{detected}</h1>
|
K dispozici jsou také různé způsoby deaktivace jazyka EL:
- Nastavení pro všechny výrazy EL po jednotlivých stránkách: Vývojář může zadat atribut isELIgnored pro direktivu stránky JSP a nastavit jeho hodnotu na true.
Příklad:
|
<%@ page isELIgnored ="true" %>
|
Tím se vypnou všechny výrazy EL pro tuto stránku (tj.
${exp} and #{exp}
)
- Pomocí nastavení skupiny vlastností JSP v souboru web.xml: Vývojář může deaktivovat výraz EL pro jednotlivou stránku nebo několik stránek založených na specifickém vzoru adres URL nastavením prvku el-ignored na true.
Například:
< span class="Code"> < jsp-property-group>
< url-pattern> *.jsp < /url-pattern>
< el-ignored> true < /el-ignored>
</jsp-property-group>
|
- Pomocí nastavení skupiny vlastností JSP v souboru web.xml deaktivujete pouze odloženou syntaxi EL (#{})
Například:
< span class="Code"> < jsp-property-group>
< url-pattern> *.jsp < /url-pattern>
< deferred-syntax-allowed-as-literal> true < /deferred-syntax-allowed-as-literal>
</jsp-property-group> |
- Nastavení pouze pro odloženou syntaxi EL po jednotlivých stránkách: Pomocí atributu deferred-syntax-allowed-as-literal direktivy stránky JSP na true
Příklad:
|
<%@ page deferredSyntaxAllowedAsLiteral="true" %>
|
Poznámka ohledně přednosti:
Atributy isELIgnored a deferredSyntaxAllowedAsLiteral direktivy stránky mají přednost před odpovídajícími prvky a hodnotami v souboru web.xml.
Tyto atributy direktivy stránky přepíší hodnoty odpovídajících prvků v souboru web.xml.
Další informace viz: