Bonjour a tous,
Je suis debutant dans struts...
Je suis confronté a un probleme d'affichage de données a vec struts.
Je reçois une erreur 'No collection found' au niveau de la .jsp
je ne vois ou alimenter la request pour recuperer les donnés au niveau de .jsp
merci pour votre aide
voici une partie de ma .jsp:
l'objet govBean semble vide au de la jsp semble vide, c'est la cause de l'erreure.
--------------------------------------------------------------------------
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 <table border="0" cellspacing="0" cellpadding="1" width="600"> <tr> <td width="5"><br> <li> </tr> <td colspan="4" valign="bottom"><span style="font-family: Verdana, sans-serif; font-size: xx-small; color: #990033; font-weight: bold"> <bean:message key="safb" /> </span></td> </tr> <tr> <td width="5"> </tr> <td><logic:iterate id="i" name="govBean" property="fspID" scope="request"> <bean:write name="i" /> <br /> </logic:iterate></td> </tr> <tr style="line-height: 0pt"> <td width="5"> </tr> <td style="background-color: #000000"></td> </tr> </table> <br /> <jsp:include page="Footer.jsp" /> <!--
voici mon action:
--------------------------------------------------------------------
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 package ca.uottawa.faidselfserv.actions; import java.util.ArrayList; import javax.mail.Session; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; import org.apache.struts.util.MessageResources; import ca.uottawa.faidselfserv.model.ApplDataAccess; import ca.uottawa.faidselfserv.model.ApplGovFinAidBean; import ca.uottawa.faidselfserv.model.GovFinAidBean; //import ca.uottawa.faidselfserv.model.DataAccess; //import ca.uottawa.faidselfserv.model.StudentBean; import ca.uottawa.struts.BaseAction; import ca.uottawa.struts.BeanContext; import ca.uottawa.struts.Logger; /* * FSMS Financial Aid Self Serve - Display Financial Aid Action * * This class gets the data for the Display Financial Aid web page which * shows student information and for each semester: registration; * scholarship, bursary, & award; government financial aid; and course * information. */ public class DisplayFinAidActionGov extends BaseAction { static Logger logger = Logger.getLogger("WEN191", DisplayFinAidActionGov.class); public ActionForward dbExecute( ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response, BeanContext ctx) throws Exception { boolean allSessions = false; if (request.getParameter("sessions") != null && request.getParameter("sessions").equalsIgnoreCase("all")) { allSessions = true; request.setAttribute("allSessions", "yes"); } else { allSessions = false; request.setAttribute("allSessions", null); } /* * obtain user type (Student, Employee, Other) and populate the attribute (S, E, O) */ String userType = ctx.getUserType().substring(0,1).toUpperCase(); request.setAttribute("userType", userType); // if there is a session value sn_rtyui (student number) then take this value // (the value sn_rtyui is named this way so that a student cannot use it // to check the information of another student). int stuNum = 0; String sn = (String)request.getSession().getAttribute("sn_rtyui"); if (sn != null) { stuNum = Integer.valueOf(sn).intValue(); } /* * obtain student number and instantiate the student bean */ if (userType.equals("S")) { stuNum = Integer.valueOf(ctx.getUserId()).intValue(); } else if (userType.equals("E") && request.getParameter("studentNum") != null) { stuNum = Integer.valueOf(request.getParameter("studentNum")).intValue(); } System.out.println("XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"); // StudentBean stuBean = new StudentBean(stuNum); ApplGovFinAidBean govBean = new ApplGovFinAidBean(stuNum); /* * obtain the financial aid data for a student */ ApplDataAccess dataAccess = new ApplDataAccess(ctx); ArrayList semList = new ArrayList(0); System.out.println(stuNum + " aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"); if (stuNum != 0) { semList = dataAccess.getFinAidGov(govBean, userType, allSessions, ctx.getLanguage()); } if (semList.size() > 0) { request.setAttribute("semList", semList); System.out.println("zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz"); } request.setAttribute("govBean", govBean); ////////// ApplGovFinAidBean ApplGovBean = (ApplGovFinAidBean)request.getAttribute("ApplGovFinAidBean"); ////////// String fspID = (String)request.getAttribute("fspID"); System.out.println( " - " + semList.size() + " /// " + govBean.getSession()+ " - " + govBean.getApplicationSeq()+ " - " + govBean.getDesc()); return mapping.findForward("displayGov"); } }
voici mon JavaBean:
-------------------------------------------------------------------------
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
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133 package ca.uottawa.faidselfserv.model; import java.math.BigDecimal; import java.util.ArrayList; */ public class ApplGovFinAidBean { // private String personID = ""; private int applicationSeq = 0; private String fspID = ""; private String session = ""; private String applicationDT = ""; private String groupST = ""; private String desc = ""; private String provinceCD = ""; private String receivedDT = ""; /* * student number constructor */ public ApplGovFinAidBean(int sN) { applicationSeq = 0; // fspID = ""; // session = ""; // applicationDT = ""; // groupST = ""; // desc = ""; // provinceCD = ""; // receivedDT = ""; } /** * @return */ /** * @return */ public String getDesc() { return desc; } /** * @return */ public String getFspID() { return fspID; } /** * @return */ public String getProvinceCD() { return provinceCD; } /** * @return */ public String getSession() { return session; } /** * @return */ public String getApplicationDT() { return applicationDT; } /** * @return */ public int getApplicationSeq() { return applicationSeq; } /** * @return */ public String getGroupST() { return groupST; } /** * @return */ public String getReceivedDT() { return receivedDT; } /** * @param d */ /** * @return */ public void setFspID(String s) { fspID = s; } /** * @return */ public void setDesc(String s) { desc = s; } /** * @return */ public void setProvinceCD(String s) { provinceCD = s; } /** * @return */ public void setSession(String s ) { session = s; } /** * @return */ public void setApplicationDT(String s) { applicationDT = s; } /** * @return */ public void setApplicationSeq(int a) { applicationSeq = a; } /** * @return */ public void setGroupST(String s) { groupST = s; } /** * @return */ public void setReceivedDT(String s) { receivedDT = s; } }
et finalement le 'Access data' :
---------------------------------------------------------------
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 package ca.uottawa.faidselfserv.model; import java.sql.CallableStatement; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Types; import java.util.ArrayList; import javax.naming.InitialContext; import javax.sql.DataSource; import ca.uottawa.struts.BeanContext; import ca.uottawa.struts.DataBaseBroker; import ca.uottawa.struts.Logger; /* * FSMS Financial Aid Self Serve Data Access * * This class contains the methods used to access stored procedures * DataAccess - constructor to establish DB connection * getFinAid - get a list of online courses for a professor */ public class ApplDataAccess extends DataBaseBroker { static Logger logger = Logger.getLogger("WEN191", ApplDataAccess.class); /* * connection constructor */ public ApplDataAccess(BeanContext c) { super(c); } /* * The getFinAid method ... */ public ArrayList getFinAidGov( ApplGovFinAidBean govBean, String userType, boolean allSessions, String language) throws Exception { Connection workStudyCon = ctx.getConnection(); if (!System.getProperty("env.db2").equalsIgnoreCase("DB2D")) { InitialContext workStudyCtx = new InitialContext(); DataSource workStudyDS = (DataSource) workStudyCtx.lookup("java:comp/env/jdbc/WorkStudy"); workStudyCon = workStudyDS.getConnection(); } ctx.setMethodName("getFinAidGov"); ctx.setStoredProcedureName("SIS.GOVT_AID_APPL_GET"); CallableStatement callStmt = con.prepareCall("CALL SIS.GOVT_AID_APPL_GET(?,?,?,?,?,?,?)"); callStmt.registerOutParameter(1, Types.INTEGER); // application sequence callStmt.registerOutParameter(2, Types.CHAR); // fsp id callStmt.registerOutParameter(3, Types.CHAR); // session id callStmt.registerOutParameter(4, Types.CHAR); // group status callStmt.registerOutParameter(5, Types.CHAR); // english description callStmt.registerOutParameter(6, Types.CHAR); // province code callStmt.registerOutParameter(7, Types.INTEGER); // error number callStmt.execute(); if (callStmt.getInt(7) != 0) { throw new Exception( "SIS.GOVT_AID_APPL_GET error:" + callStmt.getInt(7)); } //load stuBean govBean.setApplicationSeq(callStmt.getInt(1)); govBean.setFspID(callStmt.getString(2)); govBean.setSession(callStmt.getString(3)); govBean.setGroupST(callStmt.getString(4)); govBean.setDesc(callStmt.getString(5)); govBean.setProvinceCD(callStmt.getString(6)); ApplGovFinAidBean GovBean = new ApplGovFinAidBean(); ArrayList semList = new ArrayList(); ResultSet rs = callStmt.getResultSet(); // for (int i = 0;i < MysemList.size();i++){ int i =0; while (rs.next()) { //rs.getStatement(); govBean = new ApplGovFinAidBean(); govBean.setApplicationSeq(rs.getInt(1)); govBean.setFspID(rs.getString(2)); govBean.setSession(rs.getString(3)); govBean.setGroupST(rs.getString(4)); govBean.setDesc(rs.getString(5)); govBean.setProvinceCD(rs.getString(6)); semList.add(govBean); i++; } System.out.println(" * " + govBean.getSession()+ " * " + govBean.getApplicationSeq()+ " * " + govBean.getDesc()); return semList; } }
Partager