Questa regola contrassegna le direttive taglib JSP che associano lo stesso valore
dell'attributo prefix a valori dell'attributo uri differenti. La ridefinizione viene contrassegnata se si verifica all'interno dello stesso file JSP o
all'interno di un frammento o file JSP incluso in modo statico.
In base alle specifiche JSP 2.1, un prefisso non deve essere ridefinito all'interno dell'ambito corrente del JSP. Se un prefisso della libreria di tag è già definito con un URI differente all'interno di un JSP o in un frammento o JSP incluso, il prodotto deve generare un errore di conversione. JSP 2.1 è una nuova funzione in WebSphere Application Server V7. La convalida è una nuova funzione di tale release e non veniva applicata nelle versioni precedenti.
La soluzione ottimale consiste nella modifica della direttiva taglib in modo da
utilizzare prefissi univoci e nell'aggiornamento del file JSP interessato in modo da utilizzare il nuovo prefisso.
Se non si desidera modificare i file JSP, è possibile ripristinare il comportamento per il
modulo Web utilizzato nelle versioni precedenti impostando il seguente attributo JSP
nel file di estensione Web IBM
(ibm-web-ext.xml):
<jsp-attribute name="allowTaglibPrefixRedefinition" value="true"/>
In alternativa, è possibile impostare una proprietà personalizzata del contenitore Web
com.ibm.wsspi.jsp.allowtaglibprefixredefinition=true
che interessa tutte le applicazioni sul server invece di un particolare
modulo Web, come offerto dalla prima opzione.
Nell'Esempio 1, la seconda voce viene contrassegnata perché è una ridefinizione di fmt. Per questo esempio, lo strumento registra il seguente messaggio di avvertenza nel log
degli errori di Eclipse:
!MESSAGE CWMIG1125W: Il file WebContent/Page1.jsp ha provato a ridefinire il valore dell'URI per il prefisso fmt da /WEB-INF/fmt.tld a /WEB-INF/otherLib.tld.
La Non ridefinire un prefisso taglib utilizzando un URI differente
regola ha riscontrato
il problema durante l'analisi del file /MyJspProject/WebContent/Page1.jsp
nel progetto MyJspProject.
dove myPage.jspf contiene la riga
Nell'esempio 2, la riga taglib in myPage.jspf verrà contrassegnata. In questo esempio, nel log degli errori di Eclipse viene registrato il seguente messaggio
di avvertenza:
!MESSAGE CWMIG1124W: Il file WebContent/myPage.jspf ha provato a ridefinire il valore dell'URI per il prefisso fmt da /WEB-INF/fmt.tld a /WEB-INF/otherLib.tld nell'ambito del file WebContent/Page2.jsp.
La Non ridefinire un prefisso taglib utilizzando un URI differente
regola ha rilevato il problema durante
l'analisi del file /MyJspProject/WebContent/Page2.jsp nel progetto
MyJspProject.
Utilizzare le informazioni del log di errore per individuare i file in conflitto. Un file JSP incluso può causare ridefinizioni con più file JSP di base in ambiti differenti. In questo caso, un file potrebbe essere contrassegnato più volte ed una singola correzione potrebbe risolvere più problemi. È possibile che lo stesso file incluso possa ridefinire l'URI della libreria di tag in modo differente in base al file JSP che lo include. Per questo motivo viene elencato ogni errore.
Per aprire il log degli errori di Eclipse, fare clic su
Window > Show view > Other > Error log.
Per ulteriori informazioni, vedere: