Jsp et balise avec corps => Passage de variable
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:
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 :aie:
Voilà les extraits du code (sous NetBeans 5.5 ):
Le Jsp :
AffichageBrochure.jsp
Code:
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:
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:
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>
|