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 :

[JSP] [JSF] interactions entre les deux ?


Sujet :

Servlets/JSP Java

  1. #1
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 77
    Points : 73
    Points
    73
    Par défaut [JSP] [JSF] interactions entre les deux ?
    Bonjour,
    est-il possible dans une page JSP d'accéder aux managed-bean déclarés dans mon faces-config ?

    Je souhaite insérer dans un TAG JSP une valeur renvoyée par une fonction d'un bean JSF.

    Ce serait pour faire quelque chose du style :

    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
    18
    19
    20
    <f:view>
    <table border="1" width="100%" height="100%">
    <tr>
      <td colspan="2"><%@ include file="header.jsp" %></td>
    </tr>
    <tr>
      <td width="140" valign="top">
        <%@ include file="menu.jsp" %>
      </td>
      <td valign="top"  align="left">
        <%@ include file="#{gestcomctrl.vueChange}" %>
      </td>
    </tr>
    <tr>
      <td colspan="2">
        <%@ include file="footer.jsp" %>
      </td>
    </tr>
    </table>
    </f:view>
    Mais apparemment le #{gestcomctrl.vueChange} n'est pas compris ...
    Merci d'avance pour votre aide.

  2. #2
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 77
    Points : 73
    Points
    73
    Par défaut
    Ou alors peut-être y a-t-il moyen de faire des include directement en JSF (sans utiliser de tag JSP ) ... à l'aide !

  3. #3
    Membre régulier
    Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2002
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Octobre 2002
    Messages : 89
    Points : 111
    Points
    111
    Par défaut
    avec facelets tu pourra faire des includes (mais tu risque d'avoir d'autre surprise...)

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    511
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 511
    Points : 514
    Points
    514
    Par défaut
    j'ai eu un peu le meme probléme que toi faya. Ce que je fais c'est que je met ma variable en session et je la recupere par du code java. ex :

    Mise en session de la variable currentBody
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    HttpSession servletSession = (HttpSession) 
      FacesContext.getCurrentInstance().getExternalContext().getSession(false);
     
      servletSession.setAttribute("currentBody", nextPage);
    Recuperation dans ma page jsf
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <%String bodyPage = (String) request.getSession().getAttribute("currentBody");%>
    
    <h:form id="form" enctype="multipart/form-data">
    <tiles:insert page="template.jsp" flush="false">
    
    <tiles:put name="top" value="top.jsp" />
    <tiles:put name="menu" value="menu.jsp" />
    <tiles:put name="body" value="<%=bodyPage%>"/>
    </tiles:insert>
    </h:form>
    Bon bien sur cette solution n'est pas tres propre. Et puis j'utilise les tiles met ça devrait marcher avec un include je pense.

  5. #5
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 77
    Points : 73
    Points
    73
    Par défaut [JSP] [JSF] Interprétation différente selon le browser
    Alors d'abord merci à vous deux d'avoir bien voulu m'aider.
    J'ai essayé la solution de shivan et elle fonctionne à condition d'utiliser :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <jsp:include page="<%= curBody %>" />
    et pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <%@ include file="..." %>
    En ce qui concerne les facelets, étant un peu pris par le temps je les ai juste survolés mais je pense effectivement que c'est une solution possible.

    Par contre ...

    - ça fonctionne mais dans Firefox uniquement; IE me renvoie systématiquement une erreur :


    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    exception 
    org.apache.jasper.JasperException
        org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:372)
        org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
        org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
        javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
        com.sun.faces.context.ExternalContextImpl.dispatch(ExternalContextImpl.java:322)
        com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:130)
        com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:87)
        com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:200)
        com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:117)
        javax.faces.webapp.FacesServlet.service(FacesServlet.java:198)
     cause mère 
    java.lang.NullPointerException
        org.apache.jasper.runtime.JspRuntimeLibrary.getContextRelativePath(JspRuntimeLibrary.java:908)
        org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:963)
        org.apache.jsp.gcom_jsp._jspService(gcom_jsp.java:97)
        org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
        javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
        org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
        org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
        org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
        javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
        com.sun.faces.context.ExternalContextImpl.dispatch(ExternalContextImpl.java:322)
        com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:130)
        com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:87)
        com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:200)
        com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:117)
            javax.faces.webapp.FacesServlet.service(FacesServlet.java:198)
    - et dans firefox je perd toute la mise en forme html contenue dans mes include ! Si j'ai :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <h:form>
    <h:commandLink action="procom">
        <h:outputText value="Projets" styleClass="h1"/>
    </h:commandLink>
    <p>
    <h:commandLink action="respcom">
        <h:outputText value="Responsables" styleClass="h1"/>
    </h:commandLink>
    </h:form>
    je récupère :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <form id="_id0"...>
    <a href="#" onclick=...><span class="h1">Projets</span></a>
    <a href="#" onclick=...><span class="h1">Responsables</span></a>
    <input type="hidden" name="_id0" value="_id0" />
    <input type="hidden" name="_id0:_idcl" />
    </form>
    <p>
    et mes deux liens se retrouvent collés sur la même ligne !
    C'est pour le moins perturbant et ça le fait dans le body
    comme dans tout le reste (header,...). <f:verbatim> résoud le problème mais ça voudrait dire qu'il me faudra en mettre partout dans mes pages !

    Qui est-ce qui parlait d'autres surprises ...

Discussions similaires

  1. Réponses: 25
    Dernier message: 03/10/2006, 11h21
  2. Réponses: 5
    Dernier message: 28/07/2006, 15h33
  3. [JSF] Communication entre les beans
    Par Arnaud Giuliani dans le forum JSF
    Réponses: 1
    Dernier message: 01/06/2006, 23h07
  4. [GTK/FMOD] Erreur entre les deux
    Par titor dans le forum GTK+ avec C & C++
    Réponses: 6
    Dernier message: 28/12/2005, 20h23
  5. [visual C++/Matlab] communication entre les deux
    Par Bilouzzz dans le forum MFC
    Réponses: 2
    Dernier message: 15/10/2005, 05h05

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