2010-08-11 6 views
1

J'utilise JSF 2.0 pour créer un site web. Eclipse a généré le fichier web.xml suivantMéthode préférée pour configurer une page de démarrage JSF?

... 
    <servlet-mapping> 
    <servlet-name>Faces Servlet</servlet-name> 
    <url-pattern>/faces/*</url-pattern> 
    </servlet-mapping> 
... 

Donc, pour voir ma demande, je dois visiter "localhost/myApp/fait face /index.xhtml". Je préférerais voir directement en visitant "localhost/myApp/index.xhtml"

Je vois deux options pour cela:

Modification du web.xml à ce qui suit

... 
    <servlet-mapping> 
    <servlet-name>Faces Servlet</servlet-name> 
    <url-pattern>/*</url-pattern> 
    </servlet-mapping> 
... 

ou le réglage un index.xhtml dans mon répertoire de base qui fait un javascript/meta directement à faces/index.xhtml.

Selon vous, quel est le meilleur? Ou y a-t-il une autre façon de le faire?

Répondre

1

Ne pas mapper le FacesServlet sur toutes les requêtes. Vous ne voulez pas que les requêtes statiques (non-JSF) passent par le cycle de vie JSF entier. Cela ne fera qu'ajouter des frais inutiles. Mappez plutôt le FacesServlet sur un url-pattern de *.xhtml.

Si vous avez d'autres fichiers xhtml qui n'ont pas besoin de passer par l'usine JSF, choisissez plutôt un url-pattern différent, comme le *.jsf couramment utilisé. Vous n'avez pas besoin de renommer l'extension de fichier réelle, le FacesServlet va automatiquement trouver la bonne ressource.

Définitivement n'utilisez pas de redirection JS/meta pour la page d'accueil. Déclarez simplement comme <welcome-file> dans web.xml.


Cela dit, en ayant la dernière version et correctement configuré, Eclipse doit par défaut autogenerate le web.xml avec le FacesServlet cartographié sur une url-pattern de *.jsf. Assurez-vous d'utiliser la dernière version (Helios) et de bien faire les choses dans Eclipse (configurez les facettes du projet).

+0

Salut, c'était aussi l'option à laquelle je pensais (mappage uniquement .xhtml). J'utilise Eclipse Helios et il génère des fichiers .xhtml par défaut et aussi le web.xml ci-dessus avec le servletmapping de/faces/.. Je pensais que .jsf n'est plus recommandé dans JSF 2.0? Je n'ai que des pages dynamiques (à cause de i18n) donc le mappage de chaque .xhtml devrait être ok – Tim

+0

Ah, ça doit être ma configuration Eclipse spécifique. Le seul qui n'est plus recommandé dans JSF 2.0 utilise JSP au lieu de Facelets :) – BalusC

Questions connexes