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

Servlets/JSP Java Discussion :

Servlet et Managed Bean


Sujet :

Servlets/JSP Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de abdoinfo
    Inscrit en
    Septembre 2009
    Messages
    132
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 132
    Par défaut Servlet et Managed Bean
    Salut tout le mode,

    je voudrais savoir comment peut-on appeler une servlet depuis un Managed Bean dans une application web ?

    Merci beaucoup.

  2. #2
    Membre Expert
    Avatar de fxrobin
    Homme Profil pro
    Architecte SI, Java Fan, API Manager
    Inscrit en
    Novembre 2007
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte SI, Java Fan, API Manager
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2007
    Messages : 875
    Par défaut
    Salut,

    précise un peu ton besoin.
    Managed Bean ? JSF ?

    Désolé d'être abrupte, mais ta question, c'est un peu comme si on demandait "comment faire des pates avec une clé à molette" ...

  3. #3
    Membre confirmé Avatar de abdoinfo
    Inscrit en
    Septembre 2009
    Messages
    132
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 132
    Par défaut
    oui effectivement,c'est le bean qu'on le déclare pour affecter à un bouton JSF(h:commandbutton) une des fonctions déclarée dans ce bean comme montre l'exemple suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <h:commandButton id="button1" value="#{bundle.checkoutLabel}" action="#{shoppingCartBean.checkout}" />
    le bean ici c'est shoppingCartBean et la fonction déclarée checkout

    mais mon problème ce que je ne sais pas comment appeler une servlet à partir d'un bean ,autrement, je voudrais quand l'utilisateur clique sur le bouton ,la fonction associée à ce dernier se déclenche pour exécuter quelques traitements et avant qu'elle s’achève elle donne la main à la servlet pour terminer la suite des traitement qui restent comme l'illustre ce schéma:

    Page JSF -> commandButton -> bean -> servlet -> fin des traitements

    j’espère que maintenant tout est clair .

  4. #4
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Faites sortir votre logique buisness hors de la servlet, mettez là dans une méthode publique et appelez cette méthode publique. De même dans la servlet appelez cette méthode publiques.

    Il n'y a qu'un raison pour laquelle on fait appel à une servlet: traiter un requete et générer une réponse. Deux roles qui n'ont rien à faire dans un managed bean en général.

    Donc transformez ceci


    Page JSF -> commandButton -> bean -> servlet -> fin des traitements
    requete http -> servlet -> réponse

    en ceci

    Page JSF -> commandButton -> bean -> objet buisness -> traitement -> fin des traitements
    requete http -> servlet -> objet buisness -> traitement -> réponse

  5. #5
    Membre Expert
    Avatar de fxrobin
    Homme Profil pro
    Architecte SI, Java Fan, API Manager
    Inscrit en
    Novembre 2007
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte SI, Java Fan, API Manager
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2007
    Messages : 875
    Par défaut
    tchize a raison, tu ne pourras pas appeler une servlet "tel quel" depuis l'action d'un bean, car tu "casserais" tout le concept JSF qui lui produit la réponse.

    Il y aurait conflit en le HttpServletResponse de ta servlet et celui de JSF ...
    donc c'est pas une bon idée.

    tchize t'a donné l'architecture à même en place.
    Bon courage !

  6. #6
    Membre confirmé Avatar de abdoinfo
    Inscrit en
    Septembre 2009
    Messages
    132
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 132
    Par défaut
    Merci beaucoup pour vos réponses mais on pourra appeler une servlet depuis un bean comme ceci :

    le bean appelant la servlet:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     import javax.faces.context.FacesContext;  
     
        public class ServletTest {  
     
            public void doThis(){  
            String url = "url de ta servlet";  
            FacesContext context = FacesContext.getCurrentInstance();  
            try {  
               context.getExternalContext().dispatch(url);  
            }catch (Exception e) {  
               e.printStackTrace();  
            }  
            finally{  
               context.responseComplete();  
            }  
          }  
        }
    la page JSF qui contient le bouton :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     <f:view>  
        <h:form id="myForm">  
        <h:commandButton value="Do" action="#{ServletTest.doThis}" />  
        </h:form>  
        </f:view>

Discussions similaires

  1. Réponses: 5
    Dernier message: 14/02/2013, 17h44
  2. Déclarer un managed bean dans une servlet
    Par scorplayer dans le forum JSF
    Réponses: 4
    Dernier message: 10/09/2010, 11h34
  3. Réponses: 11
    Dernier message: 30/06/2009, 18h00
  4. utilisation d'un managed bean par un autre
    Par Romain93 dans le forum JSF
    Réponses: 6
    Dernier message: 28/07/2006, 10h29
  5. Réponses: 4
    Dernier message: 10/03/2006, 17h25

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