Salut à tous!
J'ai un problème avec les balises avec corps et les jsp.
Je dois insérer la requête dans le corps de la balise.
Mais le jsp ne détecte pas la variable « rs » lors du rs.next() (« cannot find symbol symbol : variable rs »).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 <caddie.selectListBrochure> SELECT * FROM brochures WHERE categorie LIKE 'DIVORCE'; </caddie.selectListBrochure> <% while(rs.next()) { %>
rs instancie la classe ResultSet. C'est objet conçu dans la classe du Tag a partir de la requête dans le corps.
J'ai suivit les examples du prof dans son livre. On a regardé avec d'autres étudiants qui y arrive...mais personne n'a trouvé le problème![]()
Voilà les extraits du code (sous NetBeans 5.5 ):
Le Jsp :
AffichageBrochure.jsp
La partie de la classe java du tag :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 <%@taglib uri="/WEB-INF/tlds/caddie.tld" prefix="caddie"%> <caddie.selectListBrochure> SELECT * FROM brochures WHERE categorie LIKE 'DIVORCE'; </caddie.selectListBrochure> ... <% while(rs.next()) { %>
selectListBrochure.java
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 private void writeTagBodyContent(JspWriter out, BodyContent bodyContent) throws IOException { String requete = bodyContent.getString(); ResultSet rs = null; try { rs = instruc.executeQuery(requete); pageContext.setAttribute("rs",rs); } catch(SQLException e) { arret=true; } bodyContent.writeOut(out); bodyContent.clearBody(); }
Le tld précise le type de la variable :
Caddie.tld
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 <tag> <name>selectListBrochure</name> <tag-class>caddie.selectListBrochure</tag-class> <body-content>JSP</body-content> <variable> <name-given>rs</name-given> <variable-class>java.sql.ResultSet</variable-class> <declare>true</declare> <scope>AT_END</scope> </variable> </tag>
Partager