My servlet class and jsp is given below.
ContactManager.java
public class ContactManager extends HttpServlet {
List contactsList = new ArrayList();
public List getContactsList() {
return contactsList;
}
public void setContactsList(List contactsList) {
this.contactsList = contactsList;
}
/**
*
*/
private static final long serialVersionUID = 7999998491377176969L;
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
AssetDao assetDao = new AssetDao();
contactsList = assetDao.loadAllContacts();
response.setContentType("text/html");
String nextJSP = "/searchResults.jsp";
RequestDispatcher dispatcher = getServletContext()
.getRequestDispatcher(nextJSP);
dispatcher.forward(request, response);
}
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
}
ContactDetails.java
public class ContactDetails {
private String contactName;
public String getContactName() {
return contactName;
}
public void setContactName(String contactName) {
this.contactName = contactName;
}
}
searchResults.jsp
pageEncoding="ISO-8859-1"%>
scope="page" id="contactManager">
Contacts managerContacts List
bgcolor="#FFFFFF" border="1" cellspacing="0">
the list size is 2.. but its not showing in the serachResult.jsp
Please Help
解决方案
You're creating a brand new instance of the servlet as a jsp:useBean. This makes no sense. It is not the same instance as the servlet instance which is been running.
In servlet, get rid of
List contactsList = new ArrayList();
public List getContactsList() {
return contactsList;
}
public void setContactsList(List contactsList) {
this.contactsList = contactsList;
}
and replace
contactsList = assetDao.loadAllContacts();
response.setContentType("text/html");
by
List contactsList = assetDao.loadAllContacts();
request.setAttribute("contactsList", contactsList); // This sets ${contactsList}
In JSP, get rid of
scope="page" id="contactManager">
and replace
by
(and fix the typo)