Comment déboguer EL dans la page JSF? Je voudrais regarder les valeurs variables, les appels de fonction, etc. La meilleure solution serait un plug-in Eclipse, mais toute autre possibilité est préférable à deviner “Pourquoi cette expression n’a pas pu être rendue correctement?”.
Le plus proche de ce que vous pouvez trouver dans JSF / Facelets est de placer un
quelque part dans la vue:
En appuyant sur Ctrl Shift D , une fenêtre contextuelle contenant des informations de débogage sur l’arborescence des composants et sur tous les parameters de requête disponibles et les variables de requête / vue / flash / session / application est affichée. C’est essentiellement une représentation du contenu de toutes ces cartes.
Le raccourci clavier est par ailleurs configurable par l’atsortingbut de hotkey
afin que vous puissiez en choisir un autre chaque fois qu’il se heurte aux raccourcis clavier par défaut du navigateur, comme il le ferait dans Firefox; Ctrl Shift D afficherait par défaut le dialog Ajouter des signets . Voici comment vous pouvez écouter Ctrl Shift X à la place:
En général, vous souhaitez également le masquer en dehors des phases de développement. Par conséquent, ajoutez une condition de rendu comme celle-ci:
Dans les informations de débogage affichées, les informations fournies sur les variables de scope ne sont pas très bonnes, comme on peut s’y attendre. Il affiche uniquement le résultat Object#toSsortingng()
de toutes les variables de scope scope par défaut à com.example.Bean@hashcode
. Vous ne pouvez pas explorer leurs propriétés et les valeurs de leurs propriétés directement comme vous pouvez le faire dans la vue de débogage du débogueur d’Eclipse. Vous devrez implémenter toSsortingng()
sur la classe en conséquence pour que le plus d’informations possibles soient retournées (si nécessaire, vous pouvez même laisser Eclipse le générer automatiquement en cliquant avec le bouton droit sur le code source> Source> Generate toSsortingng () ):
@Override public Ssortingng toSsortingng() { return Ssortingng.format("Bean[prop1=%s,prop2=%s,prop3=%s]", prop1, prop2, prop3); }
En ce qui concerne les appels de méthode, placez simplement un point d’arrêt sur le code source Java de la manière habituelle. Eclipse se lancera là aussi quand EL appelle la méthode. Si c’est un bean géré, vous verrez également ses propriétés dans le débogueur Eclipse.
Si vous rencontrez vraiment des problèmes, si vous pouvez obtenir la source de l’implémentation EL (assez simple pour le RI), vous pouvez utiliser Eclipse pour définir des points d’arrêt dans les méthodes d’implémentation EL. Vous devez comprendre comment fonctionne le code EL, mais ce n’est pas si compliqué. Pas pour les très timides.
Une autre possibilité serait de créer et d’évaluer le programme par programme. Il y a des exemples de la façon de faire cela. Vous pouvez ensuite utiliser le débogueur pour manipuler l’expression et le résultat jusqu’à ce que vous ayez trouvé votre problème.