Ik probeer mezelf een beetje wegwijs te maken in Java Server Pages en alles wat er om heen hangt. Hiervoor heb ik op internet een (gratis) boekje gedownload wat ik een beetje aan het doorspitten ben en de voorbeeldjes na maak. Ik heb echter een probleem waar ik niet uit kom, op google kan ik het antwoord niet vinden. Kort samengevat: een servlet maakt een object aan, roept met de dispatcher een jsp aan. De JSP moet dan dat object gebruiken (dmv jsp:useBean) maar er komt een foutmelding bij de creatie van het object.
Ik zat het hier iets uitgebreider toelichten. Ik heb een servlet gemaakt wat een reactie op een bepaald event opvangt (bijv. het versturen van een formulier). Dit servlet verwerkt de gegevens en roept vervolgens met een dispatcher een JSP aan die de zaak dan weer kan geven. De servlet ziet er zo uit:
Deze wordt vervolgens gebruikt in de JSP, deze gebruik een jsp:useBean om het object te gebruiken. Hier de code:
Ik krijg dan een foutmelding dat het object niet gemaakt kan worden.
Ik zat het hier iets uitgebreider toelichten. Ik heb een servlet gemaakt wat een reactie op een bepaald event opvangt (bijv. het versturen van een formulier). Dit servlet verwerkt de gegevens en roept vervolgens met een dispatcher een JSP aan die de zaak dan weer kan geven. De servlet ziet er zo uit:
Java:
De klasse Test ziet er zo uit:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
| import java.io.IOException; import javax.servlet.*; import javax.servlet.http.*; import myPackage.*; public class Tester extends HttpServlet { public void doPost( HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { Test name = new Test("FendtVario"); HttpSession session = request.getSession(true); session.setAttribute("name", name); RequestDispatcher dispatcher = getServletContext().getRequestDispatcher("/Test.jsp"); dispatcher.forward(request, response); } } |
Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| public class Test { private String name; public Test(String name) { setName(name); } public String getName() { return (name); } public void setName(String name) { this.name = name; } } |
Deze wordt vervolgens gebruikt in de JSP, deze gebruik een jsp:useBean om het object te gebruiken. Hier de code:
Java:
1
2
| <jsp:useBean id="name" class="myPackage.Test" scope="session" /> This page belongs to <jsp:getProperty name="name" property="name" /> |
Ik krijg dan een foutmelding dat het object niet gemaakt kan worden.
code:
De foutmelding is logisch, de JSP probeert de klasse de creeeren zonder parameters. Als ik de parameter uit de constructor van de klasse Test haal werkt het wel. Ik gebruik Tomcat 5.0.16 onder Linux (Suse 9). Ik het boek (hoofdstuk 15.2) wordt een iets moeilijker object (te groot voor hier) op gelijke manier gemaakt, dus ook met parameters in de constructor. Dit werkt ook niet. Wat doe ik hier fout??
1
2
3
| /home/chris/opt/jakarta-tomcat-5.0.16/work/Catalina/localhost/site/org/apache/jsp/Test_jsp.java:54:
Test(java.lang.String) in myPackage.Test cannot be applied to ()
name = new myPackage.Test(); |
www.fendt.com | Nikon D7100 | PS5