Ne definiáljon át taglib előtagot eltérő URI használatával

Ez a szabály azokat a JSP taglib utasításokat jelzi, amelyek azonos prefix attribútumértéket társítanak eltérő uri attribútumértékekhez. Az átdefiniálás akkor lesz megjelölve, ha ugyanazon a JSP fájlon belül történik, vagy ha statikusan tartalmazott JSP fájlon vagy kódrészen belül kerül rá sor.

A JSP 2.1 előírás szerint az előtagot nem szabad átdefiniálni a JSP aktuális hatókörén belül. Ha egy címkekönyvtár előtag már meghatározásra került egy eltérő URI címmel a JSP fájlban vagy egy tartalmazott JSP fájlban vagy kódrészben, akkor a terméknek fordítási hibát kell előállítania. A JSP 2.1 új volt a WebSphere Application Server 7-es változatában. Az érvényesítés ennek a kiadásnak az újdonsága és a korábbi változatokban nem került betartatásra.

A legjobb megoldás a taglib utasítás módosítása, hogy egyedi előtagokat használjon és az érintett JSP fájl frissítése, hogy az új előtagot használja.

Ha nem kívánja módosítani a JSP fájlokat, akkor visszaállíthatja a világhálós modul ezen viselkedését a korábbi változatok viselkedésére; ehhez a következő JSP attribútumot kell beállítania az IBM világhálós kiterjesztésfájlban (ibm-web-ext.xml).

<jsp-attribute name="allowTaglibPrefixRedefinition" value="true"/>

Alternatív megoldásként, beállíthatja a világhálós tároló egyéni com.ibm.wsspi.jsp.allowtaglibprefixredefinition=true tulajdonságát, hogy az adott kiszolgálón minden alkalmazást érintsen, nem csak az adott világhálós modult, amit az első lehetőség kínál.

1. példa: Az alábbi sorok ugyanabban a Page1.jsp nevű fájlban találhatók
< span class="Code"> < % @ taglib uri= "/WEB-INF/fmt.tld" prefix="fmt " %>
% @ taglib uri= "/WEB-INF/otherLib.tld" prefix="fmt " %> < /span>

Az 1. példában a rendszer jelzővel látja el a második bejegyzést, mivel az az fmt átdefiniálása. A példában az eszköz a következő figyelmeztető üzenetnaplót naplózza az Eclipse hibanaplóba:

!MESSAGE CWMIG1125W: The WebContent/Page1.jsp file attempted to redefine the URI value for the fmt prefix from /WEB-INF/fmt.tld to /WEB-INF/otherLib.tld.
The Do not redefine a taglib prefix using a different URI rule encountered the problem while analyzing the /MyJspProject/WebContent/Page1.jsp file in the MyJspProject project.

2 példa: Adott a Page2.jsp nevű JSP fájl, amelynek tartalma a következő:
> code> % @ taglib uri= "/WEB-INF/fmt.tld" prefix="fmt " %>
%; % @ include fájl= "myPage.jspf" %> /code>

ahol a myPage.jspf a következő sort tartalmazza:

\tcode> < % @ taglib uri= "/WEB-INF/otherLib.tld" prefix="fmt " %> < /code>

A 2. példában a rendszer jelzővel látja el a taglib sorát a myPage.jspf fájlban. Ebben a példában a következő figyelmeztetés kerül az Eclipse hibanaplóba:

!MESSAGE CWMIG1124W: The WebContent/myPage.jspf file attempted to redefine the URI value for the fmt prefix from /WEB-INF/fmt.tld to /WEB-INF/otherLib.tld in the scope of the WebContent/Page2.jsp file.
The Do not redefine a taglib prefix using a different URI rule encountered the problem while analyzing the /MyJspProject/WebContent/Page2.jsp file in the MyJspProject project.

A hibanaplóban található információk alapján derítse ki, mely fájlok ütköznek. A tartalmazott JSP fájl több alap JSP fájllal okozhat átdefiniálást különböző hatókörökben. Ebben az esetben a fájl többször megjelölésre kerülhet, amikor egyetlen javítás több problémát javít. Lehetséges, hogy ugyanaz a tartalmazott fájl a címketár URI címét eltérő definiálja át, attól függően, hogy melyik JSP fájl tartalmazza. Ezért minden hiba felsorolásra kerül.

Az Eclipse hibanapló megnyitásához kattintson a Window > Show view > Other > Error log lehetőségre.

További információkért tekintse meg az alábbi leírásokat: