Ez a szabály a '#{' szekvencia használatát látja el jelzővel a JSP fájlokban.
A JSP 2.1 változatában a #{} szintaxis már fenntartott kulcsszónak számít.
Ha #{} szekvenciát tartalmazó régebbi JSP fájlok kerülnek a JSP 2.1 változatában felhasználásra, akkor azok hibát fognak előállítani.
A #{ szekvencia felismeréséhez az alábbi feltételeknek kell teljesülnie:
- A szervlet verziószámának (a web.xml fájlban) 2.4 vagy újabbnak kell lennie.
- Az oldalhoz nincs beállítva isELIgnored="true" utasítás.
- Az oldal nem képezhető le <jsp-property-group> csoportbeli
<url-pattern> mintára (a web.xml fájlbeli <jsp-config> elemben),
true értékre beállított <el-ignored> beállítással.
- A #{ bejegyzés egy JSP sablon szövegében fordul elő.
- A bejegyzés olyan címkék között van, amelyek nem Java Server Faces (JSF) címkék.
A szabály
úgy ismeri fel a JSF címkéket, hogy a címke előtagját összehasonlítja a szabály
"Bypass tags using these prefixes" nevű tulajdonságában biztosított előtag
listával.
A byteljesítő JSF előtagok alapértelmezett értékei:
h,f,ui,facelet,composite,comp,ez.
Vegye figyelembe az alábbiakat:
- A felhasználónak az alkalmazása által meghatározott összes többi JSF
előtagot hozzá kell adnia ahhoz, hogy a címkék figyelmen kívül maradjanak.
- A felhasználónak minden bejegyzést el kell távolítania a prefix
paraméterből, ha az előtagot használják a JSP oldalakban, de JSF címkéhez
nem.
- Ha az előtagot néhány esetben JSF előtagként használják, más esetekben
pedig normál JSP címkeként, akkor a felhasználónak nem szabad felvennie az
előtagot a paraméterlistába, és saját kezűleg kell minden egyes előállított
eredményt megvizsgálnia.
Egy automatikus javítás hozzáadja az escape karaktert a #{ szintaxis előtt.
Példa:
|
<h1>This is an example of template text that will be detected: #{detected}</h1>
|
Az automatikus javítás ezt a kódot a következőkre változtatja:
|
<h1>This is an example of template text that will be detected: \#{detected}</h1>
|
Van más módja is az Expression Language (EL) deaktiválásának:
- Oldalról oldalra az összes EL kifejezés esetében: a fejlesztő megadhatja a
JSP oldal utasítás isELIgnored attribútumát és beállíthatja true értékre
Például:
|
<%@ page isELIgnored ="true" %>
|
Ez kikapcsolja az összes EL kifejezést ezen az oldalon (pl.
${exp} and #{exp}
)
- JSP tulajdonságcsoport beállításon keresztül a web.xml fájlban: A fejlesztő
deaktiválhatja az EL-t egyetlen oldal esetében, vagy adott URL mninata alapján
több oldal esetében is, az el-ignored elemet true értékre beállítva
Például:
class="Code"> < jsp-property-group>
< url-pattern> *.jsp < /url-pattern>
< el-ignored> true < /el ignored>
</jsp-property-group>
|
- JSP tulajdonságcsoport beállításán keresztül a web.xml fájlban, csak az EL
elhalasztott szintaxist (#{}) deaktiválva
Például:
class="Code"> < jsp-property-group>
< url-pattern> *.jsp < /url-pattern>
< késleltetett szintaxis megengedett-literál > true < /késleltetett - szintaxis-megengedett-literál >
</jsp-property-group> |
- Oldalanként csak az EL elhalasztott szintaxis esetében, a JSP oldal
utasítás deferred-syntax-allowed-as-literal attribútumát true értékre
beállítva
Például:
|
<%@ page deferredSyntaxAllowedAsLiteral="true" %>
|
Az elsőbbséggel kapcsolatos megjegyzés:
Az oldal utasítás isELIgnored és deferredSyntaxAllowedAsLiteral attribútumai
elsőbbséget élveznek a web.xml fájl megfelelő elemeivel és értékeivel
szemben.
Ezek az oldal utasítás attribútumok felülbírálják a megfelelő elemek
értékeit a web.xml fájlban.
További információkért tekintse meg a következőket: