Bonjour à tous,
j'ai un petit soucis avec les taglibs.
J'utilise un IterationTag pour afficher une table des enregistrements trouvés.
Le problème est que quand il trouve une correspondance dans la base de données il ne m'affiche rien du tout dans la table.
Je vais vous afficher les différentes parties du code utilisé.
Tout d'abord mon fichier TLD:
Ensuite ma classe qui éténd IterationTag :
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 <?xml version="1.0" encoding="UTF-8"?> <taglib xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee web-jsptaglibrary_2_0.xsd" version="2.0"> <tlib-version>2.0</tlib-version> <short-name>registrationtag</short-name> <uri>/WEB-INF/tlds/RegistrationTag</uri> <tag> <name>RegistrationTag</name> <tag-class>tagClasses.RegistrationTag</tag-class> <body-content>JSP</body-content> <attribute> <name>reg</name> <required>true</required> <rtexprvalue>true</rtexprvalue> </attribute> </tag> </taglib>
Et enfin le morceau de ma JSP où est inclus mon taglib :
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
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117 /* * RegistrationTag.java * * Created on 11 February 2005, 14:38 */ package tagClasses; import java.io.IOException; import javax.servlet.jsp.JspTagException; import javax.servlet.jsp.JspWriter; import javax.servlet.jsp.tagext.BodyContent; import javax.servlet.jsp.tagext.TagSupport; import javax.servlet.jsp.tagext.Tag; import javax.servlet.jsp.tagext.IterationTag; import suzanweb.Registration; import java.util.*; import org.apache.log4j.*; /** * Generated tag handler class. * @author delcrst * @version */ public class RegistrationTag extends TagSupport { private Registration reg; private Vector rec = null; private Vector rows = null; private int rowNum = 0; private int counter = 0; Logger cat = Logger.getLogger("RegistrationTag"); public RegistrationTag() { super(); cat.info("starting RegistrationTag"); } public void setReg(Registration reg) { this.reg = reg; } public int doStartTag() throws JspTagException { rec = reg.getRecSet(); counter = rec.size(); cat.info("Starting doStartTag()"); cat.info("Registration size : "+counter); if(counter > 0) { rows = (Vector)rec.get(rowNum); setVariables(rows); rowNum++; return Tag.EVAL_BODY_INCLUDE; } else { return Tag.SKIP_BODY; } } public int doEndTag() throws JspTagException { cat.info("Starting doEndTag()"); return Tag.EVAL_PAGE; } public int doAfterBody() throws JspTagException { cat.info("Starting doAfterBody()"); if(counter > 0 && rowNum <= rec.size()) { rows = (Vector)rec.get(rowNum); setVariables(rows); rowNum++; return IterationTag.EVAL_BODY_AGAIN; } else { return Tag.SKIP_BODY; } } private void setVariables(Vector rows) { cat.info("Starting setVariables()"); cat.info("rows size : "+rows.size()); pageContext.setAttribute("registrationID",(String)rows.get(0)); pageContext.setAttribute("callCode",(String)rows.get(1)); pageContext.setAttribute("proposalID",(String)rows.get(2)); pageContext.setAttribute("proposalNr",(String)rows.get(3)); pageContext.setAttribute("coordinatorID",(String)rows.get(4)); pageContext.setAttribute("partnerID",(String)rows.get(5)); pageContext.setAttribute("coordinatorName",(String)rows.get(6)); pageContext.setAttribute("coordinatorEmail",(String)rows.get(7)); pageContext.setAttribute("telephone",(String)rows.get(8)); pageContext.setAttribute("fax",(String)rows.get(9)); pageContext.setAttribute("country",(String)rows.get(10)); pageContext.setAttribute("companyName",(String)rows.get(11)); pageContext.setAttribute("title",(String)rows.get(12)); pageContext.setAttribute("acronym",(String)rows.get(13)); pageContext.setAttribute("status",(String)rows.get(14)); pageContext.setAttribute("lastSubmission",(String)rows.get(15)); pageContext.setAttribute("preparation",(String)rows.get(16)); pageContext.setAttribute("instrument",(String)rows.get(17)); } }
Ne faites pas attention aux value dans les TD c'était juste pour effectuer un test.
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
20
21
22
23
24
25
26 <registration:RegistrationTag reg="${sessionScope.Regist}"> <TR> <form action="RegistrationServlet" method="POST"> <TD><input type="submit" width="15" value="Details"></TD> <TD><input type="text" value="${sessionScope.registrationID}" name="Registrationid"></TD> </form> <TD><input type="text" disabled value="${sessionScope.registrationID}"></TD> <TD><input type="text" disabled value="${sessionScope.callCode}"></TD> <TD><input type="text" disabled value="${sessionScope.registrationID}"></TD> <TD><input type="text" disabled value="${sessionScope.registrationID}"></TD> <TD><input type="text" disabled value="${sessionScope.registrationID}"></TD> <TD><input type="text" disabled value="${sessionScope.registrationID}"></TD> <TD><input type="text" disabled value="${sessionScope.registrationID}"></TD> <TD><input type="text" disabled value="${sessionScope.registrationID}"></TD> <TD><input type="text" disabled value="${sessionScope.registrationID}"></TD> <TD><input type="text" disabled value="${sessionScope.registrationID}"></TD> <TD><input type="text" disabled value="${sessionScope.registrationID}"></TD> <TD><input type="text" disabled value="${sessionScope.registrationID}"></TD> <TD><input type="text" disabled value="${sessionScope.registrationID}"></TD> <TD><input type="text" disabled value="${sessionScope.registrationID}"></TD> <TD><input type="text" disabled value="${sessionScope.registrationID}"></TD> <TD><input type="text" disabled value="${sessionScope.registrationID}"></TD> <TD><input type="text" disabled value="${sessionScope.registrationID}"></TD> <TR> </registration:RegistrationTag>
Le plus bizarre est que quand j'appelle la page elle s'affiche comme cela
première page
Quand je clique sur le bouton find et que la servlet retrouve une ligne correspondante dans la base de données, la première ligne de ma table contenant le titre des colonnes ne s'affiche plus. et les renseignements correspondants à ma recherche ne sont pas affichés non plus.
deuxième image
Par contre si la servlet ne retrouve pas de ligne correspondante dans la base de données, la première ligne de ma table contenant les titre des colonnes sont réaffichés.![]()
Voici ce que m'affiche le fichier log
Toutes suggestion est la bienvenue.INFO : 2005-02-12 13:21:25,820 starting RegistrationTag
INFO : 2005-02-12 13:21:25,820 Starting doStartTag()
INFO : 2005-02-12 13:21:25,820 Registration size : 0
INFO : 2005-02-12 13:21:25,820 Starting doEndTag()
INFO : 2005-02-12 13:21:55,601 Starting doStartTag()
INFO : 2005-02-12 13:21:55,601 Registration size : 0
INFO : 2005-02-12 13:21:55,601 Starting doEndTag()
INFO : 2005-02-12 13:22:04,148 Starting doStartTag()
INFO : 2005-02-12 13:22:04,148 Registration size : 1
INFO : 2005-02-12 13:22:04,164 Starting setVariables()
INFO : 2005-02-12 13:22:04,164 rows size : 18
d'avance pour vos réponses
PS: Dédolé pour le titre mais je ne savais pas quoi mettre![]()
Partager