82 votes

- Quelles différences y a-t-il entre

Je programme en JSF2 et netbeans crée de nombreuses pages avec #{} qui contient une expression.

Cependant, parfois sur le Web, j'ai trouvé ${} pour la même chose!

Y a-t-il des différences? Que sont-ils?

Google ignore les caractères # et $ ce qui rend la recherche difficile.

94voto

Fortunato Points 660

# {} est destiné aux expressions différées (les expressions différées sont résolues en fonction du cycle de vie de la page) et peut être utilisé pour lire ou écrire à partir d'un bean ou pour effectuer un appel à une méthode. $ {} sont des expressions à résolution immédiate, dès qu’elles sont rencontrées, elles sont résolues. Ils sont en lecture seule. Vous pouvez en lire plus ici: http://docs.oracle.com/javaee/6/tutorial/doc/bnahr.html

12voto

Jean Hominal Points 7001

Une recherche google pour "Java Server Faces dollar livre" a donné les résultats suivants, de JBoss Langage d'Expression de la FAQ:

Pourquoi certaines expressions de commencer avec des livres et d'autres commencent avec le signe du dollar?

Pour EL spécification elle-même, il n'y a pas de différence. C'est à la technologie utilisant la EL de décider ce qu'elle signifie. Pour les JSP et JSF, les expressions qui commencent par un signe dièse signifie l'évaluation différée et un signe de dollar immédiate de l'évaluation. Cela a tout à voir avec le moment où l'expression être réellement évaluée au cours du traitement de la requête. Le signe de la livre est utilisé dans les composants JSF parce que nous voulons que l'évaluation de l'expression par la JSF le cycle de vie et non pas par la page JSP ou Facelets moteur.

9voto

Óscar López Points 97105

C'est une bonne question! J'ai fait face à une fois et comme vous, qui a eu beaucoup de mal à trouver la réponse... jusqu'à ce que je suis tombé sur ce morceau de documentation:

Une caractéristique clé du unifiée EL est son soutien à la fois immédiates et différées à l'évaluation des expressions. Évaluation immédiate signifie que le moteur de JSP évalue l'expression et renvoie le résultat immédiatement lorsque la page est rendu pour la première fois. L'évaluation différée signifie que la technologie à l'aide de l'expression de la langue peut employer ses propres machines pour évaluer l'expression un peu plus tard au cours de la page du cycle de vie, chaque fois qu'il est approprié de le faire. Les expressions qui sont évaluées immédiatement utiliser le ${} syntaxe, qui a été introduit avec la JSP 2.0 langage d'expression. Expressions dont l'évaluation est reportée au #{} syntaxe, qui a été introduit par JavaServer Faces de la technologie.

5voto

dov.amir Points 3126

JSF EL utilise un hachage (#) où JSP EL utilise le signe dollar ($) dans jsf1.2 les deux syntaxes ont été unifiées

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X