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)
Partager