Ce qui est le plus proche de ce que vous pouvez obtenir dans JSF/Facelets est de placer un <ui:debug />
quelque part dans la vue :
<ui:debug />
Presser CtrlShiftD devrait alors afficher une fenêtre contextuelle contenant des informations de débogage sur l'arborescence des composants et tous les paramètres de demande disponibles ainsi que les variables de demande/vue/flash/session/application. Il s'agit essentiellement d'une représentation du contenu de toutes ces cartes.
Le raccourci clavier est d'ailleurs configurable par hotkey
afin que vous puissiez en choisir un autre lorsqu'il entre en conflit avec les touches de raccourci par défaut du navigateur, comme ce serait le cas dans Firefox ; CtrlShiftD afficherait par défaut le Ajouter des signets dialogue. Voici comment vous pourriez le faire pour écouter sur CtrlShiftX à la place :
<ui:debug hotkey="x" />
Vous aimeriez généralement aussi le cacher en dehors de la phase de développement, alors ajoutez une condition de rendu comme celle-là :
<ui:debug hotkey="x" rendered="#{facesContext.application.projectStage == 'Development'}" />
Dans les informations de débogage affichées, les informations fournies sur les variables scopées ne sont pas aussi importantes qu'on pourrait le penser. Elle ne montre que le Object#toString()
résultat de toutes les variables scopées, qui a pour valeur 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 pourriez le faire dans la vue de débogage du débogueur d'Eclipse. Vous devez implémenter toString()
sur la classe en conséquence afin de renvoyer autant d'informations pertinentes que possible (si nécessaire, vous pouvez même laisser Eclipse l'autogénérer en faisant un clic droit sur le code source > . Source > Générer toString() ):
@Override
public String toString() {
return String.format("Bean[prop1=%s,prop2=%s,prop3=%s]", prop1, prop2, prop3);
}
Pour ce qui est des appels de méthode, il suffit de placer un point d'arrêt sur le code source Java de la manière habituelle. Eclipse interviendra également lorsque EL appellera la méthode. S'il s'agit d'un haricot géré, vous verrez également ses propriétés dans le débogueur d'Eclipse.