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

Spring Java Discussion :

[Spring Faces] Obtenir un ELResolver de Spring [Framework]


Sujet :

Spring Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    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 : 47
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Par défaut [Spring Faces] Obtenir un ELResolver de Spring
    Bonjour à tous,

    J'ai une application web JSF utilisant Spring (2.0.6).
    Mes beans sont définis dans mes fichiers XML de Spring...
    Rien de méchant jusque là...

    Pour résoudre une expression EL du type "#{monBean.maPropriete}", je peux faire comme ça (j'ai un peu simplifié le code, en virant les blocs try-catch par exemple) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
        private Object evaluateEL(String el) {
            ExpressionFactoryImpl expressionFactory = new ExpressionFactoryImpl();
            // Je récupère le EL Context depuis mon FacesContext...
            ELContext elContext = FacesContext.getCurrentInstance().getELContext();
            ValueExpression ve = expressionFactory.createValueExpression(elContext, el, String.class);
            return ve.getValue(elContext);
        }
    Ca marche sans problème dans ma web application JSF.

    Maintenant, ce que je voudrais, c'est faire exactement la même chose, mais sans utiliser de prêt ou de loin le FacesContext...
    Mon souci est en fait de récupérer un ELContext / ELResolver qui connait les beans définis dans Spring.

    Une idée ?

    Merci bien !
    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

  2. #2
    Expert confirmé
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Par défaut
    Bonjour,
    Ce ne serait pas beaucoup plus simple et propre d'injecter tout simplement les beans que tu veux récupérer dans ton controleur JSF ?
    Un truc du genre:

    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    <bean id="beanSpring1"
    		class="BeanSpring1" />
     
    <bean id="beanSpring2"
    		class="BeanSpring1" />
     
    <bean id="beanJSF1"
    		class="BeanJSF1" p:champ-ref="beanSpring1" />
     
    <bean id="beanJSF2"
    		class="BeanJSF2">
      <property name="champ" ref="beanSpring2" />
    </bean>

    Non ?

  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 : 47
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Par défaut
    Non, ce serait trop simple

    Mon souci est que j'ai une application (non web, donc non JSF, mais qui utilise Spring) qui doit parser un fichier contenant des expressions EL que je dois absolument évaluer.
    C'est tordu, je le conçois, mais il faut que je trouve une solution...
    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
    Expert confirmé
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Par défaut
    Tu veux accéder à l'ELResolver depuis une application non web ?

    Je ne crois pas que ce soit faisable (ça n'engage que moi).

    Mais en tout cas, je crois qu'il vaut mieux envisager une solution de remoting qui serait plus adaptéé, genre WS ou Hessian par exemple, le tout géré par Spring.

    Par exemple, tu peux créer un service qui évalue un EL:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    interface ElEvaluator {
      Object eval(String el);
    }
    Implémenter ça (dans l'app web JSF, donc tu as accès au FAcesContext), et exposer avec Hessian/RMI/etc. via Spring.
    Tu récupères ce service (un proxy en fait) depuis ton application non web, tu invoques l'évaluation, et tu récupère le résultat.

  5. #5
    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 : 47
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Par défaut
    Bon, si on simplifie le problème, y a pas moyen de faire évaluer, par notre bon pote Spring l'expression #{monBean.maPropriete}, ou monBean.maPropriete ou ${monBean.maPropriete} ou ....
    sachant que monBean est l'ID d'un bean défini dans un fichier XML de Spring ?
    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

  6. #6
    Expert confirmé
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Par défaut
    Si si, c'est faisable, via ELContext.getELResolver(), mais ça ne s'applique pas à ton cas car tu es en dehors de l'application Web, donc tu n'as pas accès à l'ELContext.

    Je me répète : il suffit d'exposer un service qui tourne dans l'application Web et qui effectue l'évaluation, et d'invoquer ce service par l'application non Web (c'est pas difficile du tout).

  7. #7
    Membre Expert
    Avatar de gifffftane
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 354
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 2 354
    Par défaut
    Je vais peut être dire une bêtise parce que j'ai jamais essayé, mais avec SimpleSpringBeanELResolver, sous réserve que tu aies aussi quelque part un javax.el.ELContext ?

    > grilled ; Ah, ce ELContext...

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

Discussions similaires

  1. Spring-Faces + problème avec les URL paramétrés
    Par ITLEARNEAR dans le forum JSF
    Réponses: 0
    Dernier message: 24/05/2014, 01h58
  2. spring-faces + probleme avec les url paramétrés
    Par ITLEARNEAR dans le forum Spring Web
    Réponses: 0
    Dernier message: 23/05/2014, 18h44
  3. [Java][Spring] Support d'aide à la certification Spring
    Par Hikage dans le forum Certifications
    Réponses: 1
    Dernier message: 29/01/2008, 14h04
  4. [spring-ws] [tomcat5.0] tutorial de spring-ws
    Par sinarf dans le forum Tomcat et TomEE
    Réponses: 1
    Dernier message: 10/09/2007, 17h36
  5. [Spring ejb3]appel ejb session de spring
    Par Wessim dans le forum Spring
    Réponses: 1
    Dernier message: 31/01/2007, 08h19

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