Anvendelse af JavaBeans i JSP og Servlets
Hej Eksperter,Jeg har et problem med anvendelse af Beans i JSP og Servlets.
Problemet er at jeg gerne vil have adgang til en bønne i min Servlet. Bønnen er lagt i en JSP side.
Mit setup er som følger:
Jeg har en PersonBean med attributten(sample) og toString().
Browseren får vist FormJSP som viser en form der har:
action="/beanServlet".
Servletten skal nu gå ind og hente bønnen ned og lægge det ind i et objekt der så kan bruges i alm. java kode i Servletten. Problemet er at når jeg prøver at anvende objektet får jeg NullPointerException..
Jeg har prøvet at videresende fra Servletten til en anden JSP side, og der anvende bønnen.
Det virker fint.. Og jeg kan i den anden JSP tage data ud der tidligere er sat..
Det jeg efterlyser er: Kort kodeeksempel med hvordan Servletten skal hente bønnen.. Evt. med ændringer til JSP siden, hvis jeg har skrevet noget forkert der.
-----------------Kode: personFormJSP.jsp----------------
<%@ page errorPage="personFormJSP_error.jsp" %>
<html>
<head>
<title>
personFormJSP
</title>
</head>
<jsp:useBean id="personBean" scope="request" class="jspservletjspwithbean.PersonBean" />
<jsp:setProperty name="personBean" property="*" />
<form action="/persongemmerservlet" method="post">
<br>Enter new value : <input name="sample"><br>
<input type="submit" name="Submit" value="Submit">
<input type="reset" value="Reset">
<br>
Value of personBean.sample is : <jsp:getProperty name="personBean" property="sample" /><br>
<hr><br>
</form>
</body>
</html>
----------Kode: personGemmerServlet------------------
package jspservletjspwithbean;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
public class personGemmerServlet extends HttpServlet {
private static final String CONTENT_TYPE = "text/html";
private static final String DOC_TYPE = "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\"\n" +
" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">";
public void init() throws ServletException {}
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost( request, response );
}
//Process the HTTP Post request
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
PersonBean pb = null;
try {
pb = (PersonBean) request.getAttribute("personBean");
//Virker ikke: System.out.println( pb.toString() );
getServletConfig().getServletContext().
getRequestDispatcher("/personDisplayJSP.jsp").
forward(request, response);
} catch (Exception ex) {
System.err.println("Fejl i personGemmerServlet: " + ex.getMessage());
ex.printStackTrace(System.err);
}
}
//Clean up resources
public void destroy() {}
}
I må bære over med at mit indlæg blev lidt langt..
vh Thundergod
