Ik heb ook al eerder een topic gehad hier en heb met veel moeite mezelf wat JSP aan weten te leren. De reden hiervan is, dat er voor mij geen tijd was om JSP te leren en meteen moest beginnen met programmeren. Helaas, dit kon niet anders 
Het topic wat ik al had: [Java] Database connection zit dicht, omdat mijn laatste vraag een beetje dom was
. Maar daar kwam ik zelf ook vrij snel achter na de post.
Nu zit ik alleen weer vast en ik zie het echt niet meer. Na enkele uren zoeken op google, GoT en gewoonweg proberen en de code rustig doorlopen en de logica van de foutmelding in te zien kom ik er toch niet uit.
De situatie:
Ik heb een pagina: 'add_diet2.jsp' waarin een 2e pagina geladen wordt in een iframe: 'add_diet3.jsp'. Nu komt er in add_diet3.jsp informatie te staan die uit add_diet2.jsp moet komen. Natuurlijk, de eerste keer dat de pagina's geladen worden zijn er nog veriabelen voor add_diet3.jsp, gevolg: foutmelding. Maar ik krijg het niet voor elkaar om deze foutmelding op te vangen. Het probleem ligt hem waarschijnlijk in request.getParameter(""); Deze hebben de 1e keer geen waarde en zijn dus: null. Maar als ik een if (bla.equals(null)) { out.println("fout!"); } doe, dan werkt dat tot zo ver dat gewoonweg mijn foutmelding veranderd naar:
Ik heb de logs ook al doorgelezen, dit is een document van enkele pagina's lang. Aan het begin van de log staat duidelijk een probleem bij het omzetten van een String naar een int en valueOf (in deze omzetting). Dus kortom, er is geen waarde (of een waarde null) die omgezet kan worden.
Ik kijk misschien verkeerd, maar zie het niet meer. Ik hoop dat iemand mij ff een tip wil geven! De code die hieronder staat is niet echt netjes meer en de pagina wordt er niet netter op, maar werkt wel (als er iets in de variabelen staat). Ik ben er dus mee wezen proberen, dus het staat nog niet allemaal even netjes. De code staat dus ook nog beetje vol met probeersels, maar die zouden niet de oorzaak mogen zijn van het niet functioneren van het bestand. Probeersels, zoals: if ((food.equals(null)) || (quantity.equals(null)) || (unit.equals(null)) || (dietid.equals(null)))
add_diet3.jsp
Het topic wat ik al had: [Java] Database connection zit dicht, omdat mijn laatste vraag een beetje dom was
Nu zit ik alleen weer vast en ik zie het echt niet meer. Na enkele uren zoeken op google, GoT en gewoonweg proberen en de code rustig doorlopen en de logica van de foutmelding in te zien kom ik er toch niet uit.
De situatie:
Ik heb een pagina: 'add_diet2.jsp' waarin een 2e pagina geladen wordt in een iframe: 'add_diet3.jsp'. Nu komt er in add_diet3.jsp informatie te staan die uit add_diet2.jsp moet komen. Natuurlijk, de eerste keer dat de pagina's geladen worden zijn er nog veriabelen voor add_diet3.jsp, gevolg: foutmelding. Maar ik krijg het niet voor elkaar om deze foutmelding op te vangen. Het probleem ligt hem waarschijnlijk in request.getParameter(""); Deze hebben de 1e keer geen waarde en zijn dus: null. Maar als ik een if (bla.equals(null)) { out.println("fout!"); } doe, dan werkt dat tot zo ver dat gewoonweg mijn foutmelding veranderd naar:
code:
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
| HTTP Status 500 -
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
org.apache.jasper.JasperException
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:370)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
root cause
java.lang.NullPointerException
org.apache.jsp.add_005fdiet3_jsp._jspService(org.apache.jsp.add_005fdiet3_jsp:65)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:322)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
note The full stack trace of the root cause is available in the Apache Tomcat/5.5.12 logs.
Apache Tomcat/5.5.12 |
Ik heb de logs ook al doorgelezen, dit is een document van enkele pagina's lang. Aan het begin van de log staat duidelijk een probleem bij het omzetten van een String naar een int en valueOf (in deze omzetting). Dus kortom, er is geen waarde (of een waarde null) die omgezet kan worden.
Ik kijk misschien verkeerd, maar zie het niet meer. Ik hoop dat iemand mij ff een tip wil geven! De code die hieronder staat is niet echt netjes meer en de pagina wordt er niet netter op, maar werkt wel (als er iets in de variabelen staat). Ik ben er dus mee wezen proberen, dus het staat nog niet allemaal even netjes. De code staat dus ook nog beetje vol met probeersels, maar die zouden niet de oorzaak mogen zijn van het niet functioneren van het bestand. Probeersels, zoals: if ((food.equals(null)) || (quantity.equals(null)) || (unit.equals(null)) || (dietid.equals(null)))
add_diet3.jsp
Java:
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
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
| <HTML> <%@ page import="java.sql.*" %> <%@ taglib uri="taglib.tld" prefix="page" %> <title>Food List</title> <link rel="stylesheet" href="2col_leftNav.css" type="text/css"> </head> <body> <h2 id="Foodlist">Food List</h2> <table> <% String food = request.getParameter("food"); String quantity = request.getParameter("quantity"); String unit = request.getParameter("unit"); String dietid = request.getParameter("dietid"); if ((food.equals(null)) || (quantity.equals(null)) || (unit.equals(null)) || (dietid.equals(null))) { out.println("No food added to diet"); } else { String quantitycount = null; String food_name_english = null; String foodid = null; double d = 0; double countc = 0; int dietid_int = 0; PreparedStatement ps = null; String String_ActionStatus; String foodlist = null; boolean ActionStatus = false; Connection con = null; Statement statement = null; ResultSet rs = null; if (dietid.equals(null)) { out.println("Error: No diet number"); } else { dietid_int = Integer.valueOf (dietid).intValue(); } if (quantity.equals(null)) { out.println("Error: No quantity found"); } else { d = Double.valueOf(quantity); out.println(unit); if (unit.equals("kg")) { countc = ( d * 1000000 ); } if (unit.equals("g")) { countc = ( d * 1000 ); } if (unit.equals("mg")) { countc = d; } } try { Class.forName("com.mysql.jdbc.Driver").newInstance(); con = DriverManager.getConnection("jdbc:mysql://localhost:3306/*****","root","******"); String query = "INSERT INTO diet_food (id_diet, id_food_data, quantity) VALUES ('" + dietid_int + "','" + food + "','" + countc + "')"; ps = con.prepareStatement(query); statement = con.createStatement(); ps.executeUpdate(); ActionStatus = !ActionStatus; if ( ActionStatus == true ) { String_ActionStatus = ""; } else { String_ActionStatus = "Het invoegen van de informatie is niet gelukt"; } out.println(String_ActionStatus); } catch(Exception e) { out.println("Exception: " + e.getMessage()); } finally { try { if(con != null) con.close(); } catch(SQLException e) {} } out.println("<br><tr valign='top'><td><b>Name</b></td><td><b>Quantity</b></td></tr>"); try { Class.forName("com.mysql.jdbc.Driver").newInstance(); con = DriverManager.getConnection("jdbc:mysql://localhost:3306/******","root","******"); String query = "SELECT diet_food.quantity, food_data.food_name_english, diet_food.id_diet_food FROM diet_food, food_data WHERE diet_food.id_diet = '" + dietid_int + "' AND diet_food.id_food_data = food_data.id_food_data"; statement = con.createStatement(); rs = statement.executeQuery(query); while (rs.next()) { quantitycount = rs.getString(1); food_name_english = rs.getString(2); foodid = rs.getString(3); double b = Double.valueOf(quantitycount); double counta; double countb; if ((b >= 1000) && (b <= 999999)) { counta = (b / 1000); out.println( "<tr valign='top'><td>" + food_name_english + "</td><td>" + counta + " gr</td>"); } if (b >= 1000000) { countb = (b / 1000000); out.println( "<tr valign='top'><td>" + food_name_english + "</td><td>" + countb + " Kg</td>"); } if (b <= 999) { out.println( "<tr valign='top'><td>" + food_name_english + "</td><td>" + b + " mg</td>"); } out.println(foodid); %> <td valign='middle'> <form style='margin: 0px;' method = 'post' action = 'delete_diet_food.jsp'> <input type='hidden' name='foodid' value="<%= foodid %>"> <input type='submit' class='button' value='Delete Food' onclick="return confirm('Are you sure?');"> <input type="hidden" name="dietid" value="<%= dietid %>"> </form> </td> </tr> <% } } catch(Exception e) { out.println("Exception: " + e.getMessage()); } finally { try { if(con != null) con.close(); } catch(SQLException e) {} } } %> </table> </body> </html> |
[ Voor 30% gewijzigd door vegterb op 05-01-2006 15:40 ]
My Laptop Specificaties vs My Desktop Specificaties