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.

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()) { %>
Mais le jsp ne détecte pas la variable « rs » lors du rs.next() (« cannot find symbol symbol : variable rs »).
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

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()) { %>
La partie de la classe java du tag :

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>