2010-05-24 3 views
4

J'ai vu ce genre de problème sur SO (et sur le Net en général) plusieurs fois. Par exemple ici:Java: comment déboguer une déclaration JSTL invalide?

JSPX namespaces not visible for EL functions?

Plus tôt aujourd'hui, je tentais une JSP (.jsp régulière, pas française.jspx) pour cela, parce que je bêtement coupé/collé quelques exemples trouvé sur le net:

<%@ taglib prefix = "c" uri = "http://java.sun.com/jstl/core"%> 

Puis mon .jsp donnait une page blanche. Aucun message d'erreur dans le journal Tomcat. Non rien. Juste une page blanche.

Alors, bien sûr (je suis sarcastique ici), la ligne correcte est la suivante:

<%@ taglib prefix = "c" uri = "http://java.sun.com/jsp/jstl/core"%> 

Il y avait un « jsp/» manquant (que j'ai trouvé un indice dans une autre SO question).

Il est donc évident que de tels problèmes sont courants.

Je ne peux pas croire que vous devez attendre que les choses "ne fonctionnent pas" pour savoir que vous avez une erreur et je suis honnêtement un peu confus par le nombre de questions trouvées sur le net (et ici sur SO) où la réponse est fondamentalement "réparer votre déclaration".

Ma question ici est simple: comment savez-vous que c'est un problème de déclaration? Quel processus de réflexion est nécessaire ici pour diagnostiquer et résoudre ces problèmes? Y a-t-il des outils qui peuvent aider ici? (Je ne sais pas, comme, disons, IntelliJ IDEA ou Eclipse ou Emacs en mode nxml vous avertissant en temps réel que l'URI déclaré est invalide?)

Répondre

2

Afficher la source de la page dans webbrowser, si vous voyez les balises non analysées , alors le taglib n'est pas trouvé/chargé.

Je ne suis pas sûr si je comprends votre dernière déclaration, mais les erreurs Eclipse ici avec une ligne rouge si le taglib n'est pas trouvé dans classpath.

+0

oh mon ... J'ai juste pris en charge certains projets (pas le mien) et fait quelques corrections triviales à gauche et à droite. Je n'ai pas remarqué que mon IDE n'avait aucun support .jsp :) Alors j'aime beaucoup le truc * "view source" * concernant les tags non-analysés! – SyntaxT3rr0r

+0

De rien. – BalusC

2

http://java.sun.com/jstl/core est une déclaration JSTL valide - c'est l'URI pour JSTL core 1.0. http://java.sun.com/jsp/jstl/core est l'URI pour JSTL core 1.1.

+1

+1 ... sûrement quelque chose comme * ... sun.com/jstl/core10* et * ... sun.com/jstl/core11* aurait été plus, bien, cohérente :) Peut-être pour le noyau 1.2 de JSTL c'est va être * http: //java.sun.com/web/jsp/jstl/core* ou quelque chose :) – SyntaxT3rr0r