Quelle est la différence entre la création de pages JSF avec .jsp ou .xhtml ou .jsf extension
J'ai vu quelques exemples de créer les pages JSF avec .jsp
extension, d'autres exemples de la création avec .xhtml
extension, et d'autres exemples de choisir .jsf
.
J'aimerais juste savoir quelle est la différence entre les extensions ci-dessus lorsque vous travaillez avec des pages JSF, et comment choisir la bonne extension?
Vous devez vous connecter pour publier un commentaire.
JSP est un ancien point de vue de la technologie et largement utilisé en combinaison avec la JSF 1.x. Facelets (par certaines personnes overgeneralized comme XHTML) est le successeur de JSP et présenté comme vue par défaut de la technologie JSF 2.x à la fin de 2009. Lorsque vous avez été voir les Jsp, vous étiez peut-être en lisant des livres obsolètes, des tutoriels ou des ressources ciblées sur JSF 1.x. Vous devriez les ignorer lors du développement avec JSF 2.x et de la tête aux ressources ciblées sur JSF 2.x, sinon vous pouvez vous retrouver dans la confusion parce que beaucoup de choses sont faites différemment dans JSF 2.x sur Facelets.
La
*.jsf
est juste l'un des largement utilisé des modèles URL de laFacesServlet
cartographieweb.xml
. Les autres sont*.faces
et/faces/*
, mais ceux qui sont de retour dans le programme JSF 1.0/1.1 âges. Elles ne représentent pas le béton de l'extension de fichier/chemin d'accès, mais juste un virtuel extension de fichier/chemin d'accès et doit être spécifié dans l'Url comme http://example.com/contextname/page.jsf. Si vous êtes familier avec la base Les Servlets, alors vous devriez savoir que la servletcontainer appeler le servlet lorsque l'URL de la requête correspond à la servlet modèle d'URL. Ainsi, lorsque l'URL de la requête correspond à*.jsf
, puis leFacesServlet
sera appelé de cette façon. Lors de l'utilisation des pages Jsp, il serait effectivement exécuterpage.jsp
. Lors de l'utilisation de Facelets, ce serait en fait la compilationpage.xhtml
.Depuis JSF 2.x vous pouvez également utiliser
*.xhtml
comme modèle d'URL. De cette façon, vous n'avez pas besoin d'obtenir confus lors de la spécification d'Url. À l'aide de*.xhtml
comme modèle d'URL n'a pas été possible dans JSF 1.x avec Facelets 1.x, parce que leFacesServlet
serait alors exécuter dans une boucle infinie d'appel lui-même à chaque fois. Un avantage supplémentaire de l'utilisation de*.xhtml
est que l'utilisateur final ne sera pas en mesure de voir raw JSF code source à chaque fois que l'utilisateur final à dessein les changements de l'extension de l'URL dans la barre d'adresse du navigateur, par exemple.jsf
à.xhtml
. Il n'est pas possible d'utiliser*.jsp
comme modèle d'URL, car de cette façon, le conteneur builtinJspServlet
, qui est déjà à l'aide de ce modèle d'URL, serait remplacée et puis leFacesServlet
ne serait pas capable de se nourrir sur les Jsp plus.Voir aussi:
.jsp
fichiers sont généralement utilisés pour les JSF vues définies à l'aide des Pages Jsp..xhtml
fichiers sont généralement utilisés pour les JSF vues définies à l'aide de Facelets.Cela peut être modifié via la configuration (par exemple, voir les
javax.faces.DEFAULT_SUFFIX
etjavax.faces.FACELETS_SUFFIX
paramètres de configuration.)D'autres mappages d'extension (
*.jsf
,*.faces
) ont tendance à être utilisé pour le traitement des demandes via leFacesServlet
. C'est une logique de cartographie de la vue qui le JSF runtime poignée. Comment les mappages sont traitées est définie dans leweb.xml
(qui ne doit pas être fait en utilisant des extensions; la/faces/*
la cartographie est souvent utilisé.À partir de la spécification: