Cette règle marque les directives JSP taglib, qui associent la même valeur d'attribut prefix à une autre valeur d'attribut uri. La redéfinition est marquée si l'opération survient dans le même fichier JSP ou dans un fichier ou un fragment JSP inclus statiquement.
Conformément aux spécifications JSP 2.1, un préfixe ne doit pas être redéfini dans la portée actuelle du fichier JSP. Si un préfixe de bibliothèque de balises est déjà défini avec un autre URI dans un fichier JSP ou un fichier ou fragment JSP inclus, le produit peut créer une erreur de conversion. JSP 2.1 a été introduit dans WebSphere Application Server 7. La validation a été introduite dans cette version et n'était pas appliquée dans les versions précédentes.
La solution des pratique recommandées consiste à modifier la directive taglib de manière à utiliser des préfixes uniques et à mettre à jour le fichier JSP concerné afin d'utiliser le nouveau préfixe.
Si vous ne souhaitez pas modifier les fichiers JSP, vous pouvez inverser ce comportement pour le module Web sur celui des versions précédentes en définissant l'attribut JSP suivant dans le fichier d'extension Web IBM (ibm-web-ext.xml) :
<jsp-attribute name="allowTaglibPrefixRedefinition" value="true"/>
Vous pouvez également définir une propriété personnalisée com.ibm.wsspi.jsp.allowtaglibprefixredefinition=true de conteneur Web pour affecter toutes les applications sur le serveur au lieu d'affecter seulement le module Web spécifique disponible dans la première option.
Dans l'Exemple 1, la seconde entée est marquée, car il s'agit d'une redéfinition de fmt. Pour cet exemple, l'outil va journaliser le message d'erreur ci-dessous dans le journal d'erreurs Eclipse :
!MESSAGE CWMIG1125W : Le fichier WebContent/Page1.jsp a tenté de redéfinir la valeur d'URI du préfixe fmt de /WEB-INF/fmt.tld en /WEB-INF/otherLib.tld.
La
règle Ne pas redéfinir de préfixe taglib avec un autre URI
a détecté le problème lors de l'analyse
du fichier /MyJspProject/WebContent/Page1.jsp dans le projet MyJspProject.
où myPage.jspf contient la ligne
Dans l'Exemple 2, la ligne taglib du fichier myPage.jspf est marquée. Dans cet exemple, l'avertissement ci-dessous est journalisé dans le journal d'erreurs Eclipse :
!MESSAGE CWMIG1124W : Le fichier WebContent/myPage.jspf a tenté de redéfinir la valeur d'URI du préfixe fmt de /WEB-INF/fmt.tld en /WEB-INF/otherLib.tld dans la portée du fichier WebContent/Page2.jsp.
La règle Ne pas redéfinir de préfixe taglib avec un autre URI
a détecté le problème lors de l'analyse
du fichier /MyJspProject/WebContent/Page2.jsp dans le projet MyJspProject.
Utilisez les informations du journal d'erreurs pour identifier les fichiers qui créent un conflit. Un fichier JSP inclus peut entraîner des redéfinitions avec plusieurs fichiers JSP de base dans différentes portées. Dans ce cas, un fichier peut être marqué plusieurs fois alors qu'un seul correctif permettra de résoudre le problème. Il est possible que le même fichier inclus puisse redéfinir différemment l'URI de la bibliothèque de balises en fonction du fichier JSP qui l'inclut. A cet effet, chaque erreur est répertoriée.
Pour ouvrir le journal d'erreurs Eclipse, cliquez sur Fenêtre > Afficher la
vue > Autre > Journal des erreurs.
Pour plus d'informations, voir :