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

Struts 1 Java Discussion :

[Struts / EL] Problème d'accesibilité d'un bean


Sujet :

Struts 1 Java

  1. #1
    Membre à l'essai
    Inscrit en
    Février 2004
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 32
    Points : 22
    Points
    22
    Par défaut [Struts / EL] Problème d'accesibilité d'un bean
    Bonjour,

    Je n'arrive pas à accéder à une variable de mon bean en utilisant l'EL suivante:

    Par contre le code suivant fonctionne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <bean:write property="variable" name="monBean" />
    Le message d'erreur est du type:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    javax.servlet.jsp.JspException: ServletException in '/www/majsp.jsp': Unable to find a value for "variable" in object of class "MonBean" using operator "."
    J'utilise les EL dans des boucles et dans tout autre sortes de composants struts <html:> et je n'ai aucun problème. Uniquement l'accès direct à mon bean via les EL plante.
    Autre info: mon Bean est du type DynaActionForm.

    Voici un résumé de mes fichiers de conf:
    web.xml
    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
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <web-app xmlns="http://java.sun.com/xml/ns/j2ee" 
    		 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    		 xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
    		 http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4"> 
     
    	<servlet>
    		<servlet-name>action</servlet-name>
    		<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
    		<init-param>
    			<param-name>config</param-name>
    			<param-value>/WEB-INF/struts-config.xml</param-value>
    		</init-param>
    		<load-on-startup>1</load-on-startup>
    	</servlet>
     
            ...
    Voila, j'espère que quelqu'un aura une idée.
    Merci d'avance !

    Ce topic est lié à celui ci:
    http://www.developpez.net/forums/viewtopic.php?t=442563

  2. #2
    Membre expérimenté
    Avatar de zekey
    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 036
    Points : 1 403
    Points
    1 403
    Par défaut
    Un DynaActionForm, c'est dynamique. Cela pourrait être la base du problème. Je ne sais pas comment fontionne el en interne, ce qui est sur c'est que el est indépendant de struts et donc je vois pas bien comment il pourrait trouver un getter. Pourquoi veux tu utiliser el absolument ?

  3. #3
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,

    Citation Envoyé par ze_key
    Un DynaActionForm, c'est dynamique. Cela pourrait être la base du problème. Je ne sais pas comment fontionne el en interne, ce qui est sur c'est que el est indépendant de struts et donc je vois pas bien comment il pourrait trouver un getter. Pourquoi veux tu utiliser el absolument ?
    En effet le problème semble venir de là...
    Les EL utilisent les accesseurs standard de la classe, donc dans ton cas cela échoue puisque la classe DynActionForm ne contient pas de méthode getVariable(), alors que Struts doit surement utiliser la méthode get("variable") pour récupérer sa valeur qui est stocké dans une map interne, ce qui ne peut pas marcher avec les EL tel quel...


    Par contre tu peux utiliser la méthode getMap() afin d'accéder aux éléments de ton DynActionForm via la Map...

    Ainsi l'équivalent de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <bean:write property="variable" name="monBean" />
    pourrait être :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ${monBean.map['variable']}
    Je pense que cela devrait marcher...

    a++

  4. #4
    Membre à l'essai
    Inscrit en
    Février 2004
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 32
    Points : 22
    Points
    22
    Par défaut
    J'ai est besoin pour créer un lien dynamique vers une page:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <html:link page="/myItemPage.do?id=${monBean.monId}">Mon lien</html:link>
    Cela pourrait être la base du problème. Je ne sais pas comment fontionne el en interne, ce qui est sur c'est que el est indépendant de struts et donc je vois pas bien comment il pourrait trouver un getter.
    C'est vrai tu as raison En regardant de plus pret le DynaActionForm j'ai trouvé une method getMap() et ca m'a sorti d'affaire.
    Il faut donc utiliser:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ${monBean.map['variable']} OU ${monBean.map.variable}

  5. #5
    Membre à l'essai
    Inscrit en
    Février 2004
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 32
    Points : 22
    Points
    22
    Par défaut
    On a posté en même temps, mais bon je suis content d'avoir trouvé la réponse !
    Merci à tous.

    Un petit lien vers la documentation de struts sur les DynaActionForm:
    http://struts.apache.org/struts-action/userGuide/building_controller.html#4_3_1_DynaActionForm_Classes

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

Discussions similaires

  1. [Tomcat 5] problème de JSP et de bean
    Par squal_13 dans le forum Tomcat et TomEE
    Réponses: 2
    Dernier message: 29/11/2004, 13h27
  2. [eclipse][struts][tomcat] Problème d'intégration
    Par Alwin dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 03/07/2004, 21h48
  3. [struts][jsp] problème avec request.getParameter
    Par stago dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 01/07/2004, 23h52
  4. [Struts][JSP]Problème de Action Path
    Par luzi dans le forum Struts 1
    Réponses: 2
    Dernier message: 23/05/2004, 23h39
  5. [struts][iterate] problème logic:iterate avec un Vector
    Par jaimepasteevy dans le forum Struts 1
    Réponses: 9
    Dernier message: 31/03/2004, 18h05

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