Această regulă semnalează directivele taglib care
asociază aceeaşi valoare de atribut prefix cu diferite
valori de atribut uri. Redefinirea va fi semnalată dacă apare în acelaşi fişier JSP sau dacă apare într-un fişier JSP inclus static sau într-un fragment.
În conformitate cu specificaţiile JSP 2.1, un prefix nu trebuie redefinit în domeniul (scope) curent al JSP. Dacă un prefix taglib este deja definit cu un URI diferit într-un JSP sau într-un JSP inclus sau fragment, produsul trebuie să creeze o eroare de translatare. JSP 2.1 a fost nou în WebSphere Application Server V7. Validarea este nouă pentru acea ediţie şi nu a fost impusă în versiunile anterioare.
Soluţia de cea mai bună practică este modificarea directivei taglib
pentru a folosi prefixe unice şi actualizarea fişierului JSP afectat pentru a folosi noul prefix.
Dacă nu doriţi să modificaţi fişierele JSP, puteţi să vă
întoarceţi pentru modulul web la comportamentul ediţiilor anterioare,
prin setarea următorului atribut JSP în fişierul de extensii web IBM (ibm-web-ext.xml):
<jsp-attribute name="allowTaglibPrefixRedefinition"
value="true"/>
Alternativ, puteţi seta o proprietate personalizată de container
web com.ibm.wsspi.jsp.allowtaglibprefixredefinition=true
care să afecteze toate aplicaţiile de pe server, nu numai modulul web particular ca în prima opţiune.
În Exemplu 1, a doua intrare va fi semnalată deoarece este o redefinire a fmt. Pentru acest exemplu, unealta va jurnaliza următorul mesaj de
avertizare în istoricul de erori 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.
unde myPage.jspf conţine linia
În Exemplul 2, linia taglib din myPage.jspf va fi semnalată. În acest exemplu, veţi vedea următorul avertisment în istoricul de erori 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.
Utilizaţi informaţiile din istoricul de erori pentru a vă da seama care sunt fişierele în conflict. Un fişier JSP inclus poate cauza redefinirile cu mai multe fişiere JSP de bază în diferite domenii (scope). În acest caz, un fişier ar putea fi semnalat de mai multe ori în cazul atunci când o singură corecţie va rezolva mai multe probleme. Este posibil ca acelaşi fişier inclus poate redefini diferit URI-ul de bibliotecă de taguri în funcţie de ce fişier JSP îl include. Pentru acest motiv, este listată fiecare eroare.
Pentru a deschide istoricul de erori, faceţi clic pe
Window > Show view > Other > Error log.
Pentru informaţii suplimentare, consultaţi: