Nepředefinovat předponu taglib pomocí jiného identifikátoru URI

Toto pravidlo označí direktivy JSP taglib přidružené ke stejné hodnotě atributu prefix pomocí různých hodnot atributu uri. Nová definice bude označena, pokud k ní dojde v rámci stejného souboru JSP nebo pokud se vyskytne ve staticky zahrnutém souboru nebo fragmentu JSP.

V souladu se specifikacemi JSP 2.1 by předpona neměla být znovu definována v rámci aktuálního rozsahu JSP. Je-li předpona knihovny značek již definována s jiným identifikátorem URI v rámci JSP nebo v rámci zahrnuté stránky JSP nebo fragmentu, musí produkt vytvořit chybu překladu. Verze JSP 2.1 byla nová na serveru WebSphere Application Server V7. Ověření je nové pro dané vydání a v předchozích verzích nebylo vynuceno.

Řešením doporučených postupů je změnit direktivu taglib tak, aby používala jedinečné předpony a aby aktualizovala ovlivněný soubor JSP, aby používal novou předponu.

Nechcete-li změnit soubory JSP, můžete toto chování pro webový modul změnit na předchozí verze nastavením následujícího atributu JSP v souboru webového rozšíření IBM (ibm-web-ext.xml):

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

Volitelně můžete nastavit přizpůsobenou vlastnost webového kontejneru com.ibm.wsspi.jsp.allowtaglibprefixredefinition=true pro ovlivnění všech aplikací na serveru, nikoli jen na konkrétním webovém modulu nabízeném první volbou.

Příklad 1: Jsou dány následující řádky ve stejném souboru JSP s názvem Page1.jsp
< span class="Code"> <% @ taglib uri= "/WEB-INF/fmt.tld" prefix="fmt " %>
<% @ taglib uri= "/WEB-INF/otherLib.tld" prefix="fmt " %> < /span>

V příkladu 1 bude druhá položka označena, protože se jedná o redefinice příkazu fmt. V tomto příkladu bude nástroj protokolovat následující varovnou zprávu v protokolu chyb Eclipse:

!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.

Příklad 2: Je dán soubor JSP s názvem Page2.jsp s následujícím obsahem:
< kód> <% @ taglib uri= "/WEB-INF/fmt.tld" prefix="fmt " %>
<% @ include file= "myPage.jspf" %> < /kód>

Kde myPage.jspf obsahuje řádek

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

V příkladu 2 bude označen řádek taglib v myPage.jspf. V tomto příkladu uvidíte následující varování protokolované v protokolu chyb Eclipse:

!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.

Informace z protokolu chyb vám pomohou zjistit konfliktní soubory. Obsažený soubor JSP může způsobit nové definice s více základními soubory JSP v různých rozsazích. V tomto případě může být soubor označen vícekrát, kdy jediná oprava vyčistí více problémů. Je možné, že stejný obsažený soubor by mohl předefinovat identifikátor URI knihovny značek odlišně v závislosti na tom, který soubor JSP jej obsahuje. Z tohoto důvodu je každá chyba uvedena v seznamu.

Chcete-li otevřít protokol chyb, klepněte na volbu Okno > Zobrazit pohled > Další > Protokol chyb.

Další informace viz: