Bonjour,
C'est mon tout premier message sur ce forum et la question que je vais vous poser risque de vous paraitre digne d'un débutant.
Est-il possible de placer des expressions du type ${expression} dans les attributs d'un tag <jsp:useBean> et <jsp:setProperty> ?
par exemple,
Code jsp : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 <c:set var="idExemple" value="instanceDeMaClasse"/> <jsp:useBean id="${idExemple}" scope="page" class="monpackage.maclasse"/>
Je place ma question dans son contexte :
la page dont je vous soumets le code ci-dessous reçoit une pléiade de paramètres (paramName = paramValue), dont certains qui sont volontairement du type idAttribut_idPersonne = valeurAttribut. Par exemple, anneeDeNaissance_conjoint = 1978.
Le but est d'attraper tous les paramètres de ce type pour en attribuer la nouvelle valeur à l'attribut approprié de la personne appropriée. Dans l'exemple proposé ci-dessus, la Personne ayant l'id "conjoint" se verra changer son "anneeDeNaissance" à 1978.
Vous l'aurez deviné, je me sers d'un bean "Personne" dont le code (est-il vraiment nécessaire ?) est donné ci-après.
Code de la jsp, commenté
Code jsp : 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 <%@page contentType="text/plain" pageEncoding="UTF-8" %> <%@page isELIgnored="false" %> <%@page import="metier.assure.Personne" %> <%-- Java Standard Tag Library --%> <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <%@taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %> <%-- je récupère tous les paramètres de la requête --%> <c:forEach items="${param}" var="p"> <c:choose> <%-- traitement spécial pour ceux qui contiennent un tiret bas --%> <c:when test="${fn:contains(p.key,'_')}"> <%-- je stocke attribut et id dans un tableau --%> <c:set var="psplit" scope="page" value="${fn:split(p.key,'_')}"/> <%-- test qui affiche correctement id, son attribut et la valeur à appliquer --%> id personne : ${psplit[1]} , attribut : ${psplit[0]} , valeur : ${param[p.key]} <br/> <%-- et là ca coince je veux appeler le bean identifié dans le paramètre :_( --%> <jsp:useBean id="${psplit[1]}" scope="page" class="metier.assure.Personne"/> <%-- ici aussi je suppose --%> <jsp:setProperty name="${psplit[1]}" property="${psplit[0]}" value="${param[p.key]}"/> </c:when> <c:otherwise> <%-- test pour les autres types de paramètre --%> parametre : ${p.key}, valeur : ${param[p.key]}<br/> </c:otherwise> </c:choose> </c:forEach>
Le code du bean Personne :
Pour information, l'erreur que je rencontre dans le log Tomcat est dans le prochain message.
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 package metier.assure; public class Personne { /** Année de naissance */ Integer adn; public Personne(){ } public Integer getAdn() { return adn; } public void setAdn(Integer ddn) { this.adn = adn; } }
Pourriez-vous m'aider ? Je vous avoue que je m'attends à la réponse courte que je redoute le plus ("tu peux pas.")…
Partager