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.
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: Soubor WebContent/Page1.jsp se pokusil předefinovat hodnotu URI pro předponu fmt z hodnoty /WEB-INF/fmt.tld na /WEB-INF/otherLib.tld.
Makro Nepředefinovat předponu taglib pomocí jiného identifikátoru URI
rule encountered the
problem while analyzing the /MyJspProject/WebContent/Page1.jsp file
in the MyJspProject project.
Kde myPage.jspf obsahuje řádek
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: Soubor WebContent/myPage.jspf se pokusil předefinovat hodnotu URI pro předponu fmt z hodnoty /WEB-INF/fmt.tld na /WEB-INF/otherLib.tld v rámci oboru WebContent/Page2.jsp souboru.
Makro Nepředefinovat předponu taglib pomocí jiného identifikátoru 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: