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ě.
Rychlá oprava přidá řídicí znak před #{ syntax.
Příklad:
|
<h1>Zde je uveden příklad textu šablony, který bude zjištěn: #{detected}</h1>
|
Rychlá oprava změní tento kód na:
|
<h1>Zde je uveden příklad textu šablony, který bude zjištěn: \#{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 vypnout všechny výrazy EL pro danou stránku (např. všechny ${exp} a #{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:
<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:
<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: