Parfois, je vois que L'URL JSF est *.jsf, parfois *.xhtml et parfois /faces/*. Pourquoi?
été essayer d'apprendre le JSF, et parfois je vois l'URL est *.jsf
et parfois est *.xhtml
ou /faces/*
. Est-ce que quelqu'un peut remplir mes connaissances, s'il vous plaît? Quand je crée un JSF en utilisant Facelet , l'extension du fichier est .xhtml
, alors d'où vient l'extension de L'URL .jsf
?
1 réponses
l'extension .jsf
correspond à l'extension FacesServlet
pendant la période JSF 1.2 souvent cartographiée dans le web.xml
.
<servlet-mapping>
<servlet-name>facesServlet</servlet-name>
<url-pattern>*.jsf</url-pattern>
</servlet-mapping>
l'extension .xhtml
est du réel le fichier Facelets que vous avez physiquement placé dans le webcontent de votre webapp, par exemple Webapp/WebContent/page.xhtml
.
si vous invoquez cette page avec l'extension .jsf
, par exemple http://localhost:8080/webapp/page.jsf
alors le FacesServlet
sera invoqué, localisez le fichier page.xhtml
et analysez/restituez ses composants JSF. Si le FacesServlet
n'est pas invoqué, alors l'utilisateur final obtiendra le code source XHTML brut (qui peut être vu par rightclick, View Source ).
on a parfois utilisé une extension ou un foldermapping *.faces
. Mais c'était de retour dans les âges JSF 1.0/1.1. Vous êtes libre de choisir et d'utiliser n'importe quel mapping que vous souhaitez laisser FacesServlet
écouter, même si c'est un *.xyz
qui ne dit rien . La page elle-même devrait toujours avoir l'extension .xhtml
, mais celle-ci est configurable par <context-param>
dans web.xml
:
<context-param>
<param-name>javax.faces.DEFAULT_SUFFIX</param-name>
<param-value>.xml</param-value>
</context-param>
ceci changera le FacesServlet
pour localiser page.xml
instad of (default) page.xhtml
.
plus récemment, avec JSF/Facelets 2.0, une cartographie *.xhtml
a été utilisée. Dans JSF / Facelets 1.x il n'a pas été possible d'utiliser la même cartographie extension en tant que Fichier physique. Il en résulterait une boucle infinie. Mais depuis JSF / Facelets 2.0 Il est possible et cela vous permet d'appeler la page par http://localhost:8080/webapp/page.xhtml
.
<servlet-mapping>
<servlet-name>facesServlet</servlet-name>
<url-pattern>*.xhtml</url-pattern>
</servlet-mapping>
de cette façon, vous n'avez pas besoin de configurer certaines restrictions de sécurité pour cacher les fichiers sources bruts pour les cas où l'utilisateur final change par exemple .jsf
dans L'URL de .xhtml
dans la barre d'adresse du navigateur. Seuls les outils (IDEs et plugins) et les ressources d'apprentissage ont encore besoin d'être vers le haut le passage préconisé de *.jsf
à *.xhtml
. Conformément à la norme JSF 2.3, le FacesServlet
sera automatiquement enregistré sur *.xhtml
aussi (à côté de /faces/*
, *.faces
et *.jsf
). C'est rétroporté à Mojarra 2.2.11.
voir aussi:
- Peut-on utiliser des expressions régulières dans le web.xml des formats d'URL?
- Définir la page d'accueil par défaut à l'aide de
dans le projet JSF - JSF retourne une page vierge avec une source simple/brute XHTML/XML/EL au lieu d'une sortie HTML rendue
- Quelle est la différence entre créer des pages JSF avec .jsp ou .xhtml ou .extension jsf
- quels fichiers XHTML dois-je mettre dans /WEB-INF et lesquels pas?
- personnaliser FacesServlet
pour se débarrasser de .XHTML extension