IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JSF Java Discussion :

JavaServer Faces et MVC


Sujet :

JSF Java

  1. #1
    Membre éclairé
    Inscrit en
    Avril 2010
    Messages
    342
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 342
    Par défaut JavaServer Faces et MVC
    Je suis débutant dans JSF, je sort de JSP/Servlet - MVC. Mais avec JSF j'écris mes pages web, j'appel directement mes Bean et j'ouvre d'autres pages... ainsi de suite.

    Ma question est de savoir si JSF n'a pa besoin de Servlet (de contrôleur), si oui comment ça se passe, pourquoi utiliser les Servlets avec JSP ? pourquoi ne pas appeler ses Bean directement aussi à partir de JSP ?

  2. #2
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Pourquoi utiliser les servlets avec JSP : juste une question de séparation de rôle et de spécialisation (La page JSP étant une servlet, plutôt conçue pour générer la sortie)

    Avec JSF, on est bien dans MVC2, toutes les demandes passent par une servlet unique FacesServlet.
    Généralement (mais ce n'est pas obligatoire), le ManagedBean est le contrôleur qui fait le lien entre les actions et les données. On a tendance à le spécialiser par rapport à un élément fonctionnel (genre ClientManager, ArticleManager, etc...) mais là encore, chacun sa pratique

    Par rapport à struts (1), ce serait une fusion de Action + ActionForm, en plus souple.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Rédacteur
    Avatar de romaintaz
    Homme Profil pro
    Java craftsman
    Inscrit en
    Juillet 2005
    Messages
    3 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Par défaut
    JSF utilise une seule servlet (javadoc), qui va permettre d'initier et gérer le cycle de vie d'une requête JSF. Autrement dit, c'est transparent pour l'utilisateur. En tant que développeur, tu ne développes jamais de nouvelle servlet quand tu fais du JSF. Les actions s'inscrivent dans un contexte particulier du cycle de vie d'une requête JSF et ne sont exécutées qu'à partir d'un certain moment (entre autres une fois les phases de validation et conversion passées).

    Concernant les JSP, ce n'est qu'une façon d'écrire les pages, donc il est possible d'utiliser des JSP pour écrire du JSF, bien qu'avec Facelets (et donc JSF 2.0), on privilégiera les pages en XHTML. C'est à peu près la même chose, si ce n'est que les pages XHTML n'autorisent pas les scriptlets (i.e. l'inclusion de code Java dans les pages), et c'est vraiment une bonne chose !
    Nous sommes tous semblables, alors acceptons nos différences !
    --------------------------------------------------------------
    Liens : Blog | Page DVP | Twitter
    Articles : Hudson | Sonar | Outils de builds Java Maven 3 | Play! 1 | TeamCity| CitConf 2009
    Critiques : Apache Maven

  4. #4
    Membre éclairé
    Inscrit en
    Avril 2010
    Messages
    342
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 342
    Par défaut
    OK, merci beaucoup, je suis mieux éclairé, donc avec JSF, tout ce que je dois faire, c'est écrire des pages xhtml et des Managed Bean et le reste est géré de manière transparente.

    Les deux petits problèmes que j'ai encore sont :

    1) Le terme Facelets, je ne comprend pas très bien ce que c'est et la différence entre Facelets et JSF.

    2) Et Lorsque je crée ma page xhtml, j'ai ceci en entête
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <html xmlns="http://www.w3.org/1999/xhtml"
    	xmlns:ui="http://java.sun.com/jsf/facelets"
    	xmlns:h="http://java.sun.com/jsf/html"
    	xmlns:f="http://java.sun.com/jsf/core">
    Et je crois bien que chaque ligne a une signification quand aux balises. Quelqu'un pourait-il m'éclaircir ? Ou me donner un lien vers un Tuto ?

    Merci

  5. #5
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Facelets est une techno de présentation, tu peux voir ici un tuto avec les explications.

    Chaque ligne à son importance, mais en gros, de la ligne 2 à 4, on est dans l'esprit des balises
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic"%>
    .
    Dans ton cas :
    - "ui" sera le préfixe pour les balises propres à facelets
    - "h" sera le préfixe pour les balises propres à html
    - "f" sera le préfixe pour les balises propres à jsf
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Membre éclairé
    Inscrit en
    Avril 2010
    Messages
    342
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 342
    Par défaut
    Merci beaucoup

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Component library for JavaServer Faces
    Par pgcdppcm dans le forum JSF
    Réponses: 10
    Dernier message: 22/05/2012, 11h46
  2. Glassfish et JavaServer Faces
    Par mesken dans le forum JSF
    Réponses: 6
    Dernier message: 07/04/2011, 23h26
  3. Réponses: 1
    Dernier message: 10/06/2009, 15h34
  4. Réponses: 5
    Dernier message: 29/05/2009, 13h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo