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 :

générer dynamiquement l'attribut name dans <jsp:setProperty


Sujet :

Servlets/JSP Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2006
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 21
    Points : 17
    Points
    17
    Par défaut générer dynamiquement l'attribut name dans <jsp:setProperty
    Bonjour à tous, voila mon probleme :

    je voudrais récupérer dynamiquement le nom d'une variable passée à ma page JSP pour alimenter la balise <jsp:setProperty, et je butte sur l'attribut name.

    voici mon code :

    <jsp:useBean id="inifile" class="anthropo.station.meteo.outils.BeanIniFile"/>
    <jsp:setProperty name="inifile" property="fichier" value="/station.ini"/>
    <HTML>
    <BODY>

    <%
    java.util.Enumeration liste = request.getParameterNames();
    while (liste.hasMoreElements())
    {
    String name=(String) liste.nextElement();
    if (request.getParameter(name)!="")
    {
    String nom = name.substring(0,1).toLowerCase() + name.substring(1,name.length());
    %>

    <jsp:setProperty name="inifile" property="<%=nom%>" value='<%=request.getParameter(name)%>'/>
    <%
    }
    }
    %>
    </BODY>
    </HTML>


    question : celà est il possible (comment ?!!)

    ou bien peut on créer dynamiquement le nom et y accéder en java 'pur' par exemple si le champ s'appelle 'rayon' il faudrait pouvoir appeler inifile.setRayon dynamiquement.

    J'ai testé en faisant écrire le code plutot qu'en l'interprétant :
    j'obtiens jsp:setProperty name="inifile" property="rayon" value='10'/>
    ce qui est correct. en l'écrivant en brut dans le code ça fonctionne pas de probleme.

    J'ai beaucoup cherché, je débute et peine quelque peu.

    Merci de votre aide





    voici le log :
    type Rapport d'exception

    message

    description Le serveur a rencontré une erreur interne () qui l'a empêché de satisfaire la requête.

    exception

    org.apache.jasper.JasperException: Exception in JSP: /jsp/EnregistrerParametres.jsp:16

    13: String nom = name.substring(0,1).toLowerCase() + name.substring(1,name.length());
    14: %>
    15:
    16: <jsp:setProperty name="inifile" property="<%=name.substring(0,1).toLowerCase() + name.substring(1,name.length())%>" value='<%=request.getParameter(name)%>'/><BR>
    17: jsp:setProperty name="inifile" property="<%=nom%>" value='<%=request.getParameter(name)%>'/><BR>
    18: <%
    19: }


    Stacktrace:
    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:504)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:375)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)


    cause mère

    org.apache.jasper.JasperException: =Impossible de trouver de l'information sur la propriété '<%=name.substring(0,1).toLowerCase() + name.substring(1,name.length())%>' dans le bean de type 'anthropo.station.meteo.outils.BeanIniFile'
    org.apache.jasper.runtime.JspRuntimeLibrary.handleSetProperty(JspRuntimeLibrary.java:665)
    org.apache.jsp.jsp.EnregistrerParametres_jsp._jspService(EnregistrerParametres_jsp.java:69)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)


    cause mère

    org.apache.jasper.JasperException: =Impossible de trouver de l'information sur la propriété '<%=name.substring(0,1).toLowerCase() + name.substring(1,name.length())%>' dans le bean de type 'anthropo.station.meteo.outils.BeanIniFile'
    org.apache.jasper.runtime.JspRuntimeLibrary.getWriteMethod(JspRuntimeLibrary.java:793)
    org.apache.jasper.runtime.JspRuntimeLibrary.handleSetProperty(JspRuntimeLibrary.java:662)
    org.apache.jsp.jsp.EnregistrerParametres_jsp._jspService(EnregistrerParametres_jsp.java:69)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    509
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 509
    Points : 568
    Points
    568
    Par défaut
    Slt,
    J'ai peut etre pas totu saisie, mais tu trouvera peut ton bonheur dans les Expressions language (EL)

    http://adiguba.developpez.com/tutoriels/j2ee/jsp/el/
    UML avec VIOLET

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2006
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 21
    Points : 17
    Points
    17
    Par défaut
    merci pour ta réponse. j'ai parcouru pas mal de tutos là dessus, masi je ne pense pas que c'est ma solution.

    je voudrais générer dynamiquement le nom de la property d'un bean (exemple si mon champ de formulaitre est 'rayon', je voudrais remplir le <jsp:setProperty name="inifile" property= avec 'rayon'

    mais lorsque je le tente avec une String il hurle que ce n'est pas bien...

    alors je cherche encore...

    merci

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    509
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 509
    Points : 568
    Points
    568
    Par défaut
    pourtant voila ce que dit le tuto du lien que je t'ai donner :

    Afin d'utiliser les EL, une application web J2EE 1.4 (Servlet 2.4 / JSP 2.0) est nécessaire. Les EL peuvent alors être utilisées dans n'importe quel page JSP ou fichier *.tag :

    * Dans les attributs des tags JSP.
    * Dans du texte simple de la page JSP.

    Par exemple :

    ${monBean}
    <prefix:actionTag id="newBean" param="${monBean}">
    ${newBean}
    </prefix:
    et on voit que l'on peut faire param="${monBean}" donc tu construit au prealable ta variable "monBean" dynamiquement tu la mets dans la requete ou la session si besoin et c'est bon !!!!
    UML avec VIOLET

Discussions similaires

  1. [CakePHP] Modification automatique attribut name dans Form
    Par FadeToBlack dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 04/06/2013, 22h09
  2. Mise à jour dynamique d'une image dans une JSP
    Par zomurn dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 23/12/2011, 14h01
  3. Récupérer un attribut session dans une jsp
    Par zemzoum89 dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 23/03/2011, 21h30
  4. Générer dynamiquement un attribut de balise html
    Par guste dans le forum ASP.NET MVC
    Réponses: 5
    Dernier message: 07/04/2010, 14h41
  5. Réponses: 2
    Dernier message: 31/08/2002, 14h00

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