2014-07-03 8 views
-1

Я новичок, я использую JSP сервлет с спящим режимом, я хочу передать объект из сервлета JSPпередать объект из сервлета JSP

В основном я хочу, чтобы вывести текущий факультет и соответствующие им имена с идентификатором ,

вот моя прога:

package com.college; 

import com.college.faculty.Faculty; 

import java.io.IOException; 
import java.io.PrintWriter; 
import java.util.Iterator; 
import java.util.List; 
import javax.servlet.RequestDispatcher; 
import javax.servlet.ServletConfig; 
import javax.servlet.ServletException; 
import javax.servlet.ServletRequest; 
import javax.servlet.ServletResponse; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 
import javax.servlet.http.HttpSession; 
import org.hibernate.Criteria; 
import org.hibernate.Session; 
import org.hibernate.SessionFactory; 
import org.hibernate.cfg.Configuration; 


public class FacultyExtract extends HttpServlet { 



SessionFactory factory; 
public void init(ServletConfig config) throws ServletException 
{ 
factory = new Configuration().configure().buildSessionFactory(); 
System.out.println("Factory has been created"); 
} 

public void service(ServletRequest request,ServletResponse response)throws ServletException,IOException 
{ 
//HttpSession obses = request.getSession(); 
int pageIndex=0; 
int totalNumberOfRecords=0; 
int numberOfRecordsPerPage=4; 

String sPageIndex= request.getParameter("pageIndex"); 

if(sPageIndex==null) 
{ 

pageIndex=1; 

} 
else 
{ 
pageIndex = Integer.parseInt(sPageIndex); 
} 

Session ses = factory.openSession(); 
int s= (pageIndex*numberOfRecordsPerPage)-numberOfRecordsPerPage; 

Criteria crit = ses.createCriteria(Faculty.class); 
crit.setFirstResult(s); 
crit.setMaxResults(numberOfRecordsPerPage); 

List l= crit.list(); 
Iterator it =l.iterator(); 


for (int i=1;i>=6;i++) 
{ 
     Faculty m = (Faculty)it.next(); 
     if(i==1) 
     { 
      Faculty a1 = (Faculty) m ; 
      request.setAttribute("F1",a1); 

     } 
     if(i==2) 
     { Faculty a2 = (Faculty) m ; 
     request.setAttribute("F2",a2); 
     } 
     if(i==3) 
     { Faculty a3 = (Faculty) m ; 
     request.setAttribute("F3",a3); 
     } 
     if(i==4) 
     { 

      Faculty a4 = (Faculty) m ; 
     request.setAttribute("F4",a4); 
     } 
     if(i==5) 
     { 

      Faculty a5 = (Faculty) m ; 
         request.setAttribute("F5",a5); 
     } 
     if(i==6) 
     { 

      Faculty a6 = (Faculty) m ; 
      request.setAttribute("F6",a6); 
     } 
    } 

RequestDispatcher dispatcher = request.getRequestDispatcher("Faculty.jsp"); 

dispatcher.forward(request , response); 

} 

} 

Faculty.jsp

<%@page import="com.college.faculty.Faculty"%> 
<%@page contentType="text/html" pageEncoding="UTF-8"%> 
<!DOCTYPE html> 
<html> 
<head> 
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
    <title>JSP Page</title> 
</head> 
<body> 

    <% 
     //HttpSession obses=request.getSession(); 

     Faculty fac =(Faculty) request.getAttribute("f1"); 

    // System.out.println(fac.getExpDetail()); 
     //String f2 = (String)fac.getQulification(); 

    %> 

    <h1>Hello World!</h1> 

    <%=fac.getExpDetail()%> 


</body> 
</html> 

Код ошибки:

HTTP Status 500 - java.lang.NullPointerException 

type Exception report 

message java.lang.NullPointerException 

description The server encountered an internal error that prevented it from fulfilling   this request. 

exception 

org.apache.jasper.JasperException: java.lang.NullPointerException 
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:5 49) 
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:470) 
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:403) 
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:347) 
javax.servlet.http.HttpServlet.service(HttpServlet.java:725) 
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) 
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393) 
com.college.FacultyExtract.service(FacultyExtract.java:116) 
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) 
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393) 
root cause 

java.lang.NullPointerException 
org.apache.jsp.Faculty_jsp._jspService(Faculty_jsp.java:90) 
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) 
javax.servlet.http.HttpServlet.service(HttpServlet.java:725) 
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432) 
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:403) 
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:347) 
javax.servlet.http.HttpServlet.service(HttpServlet.java:725) 
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) 
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393) 
com.college.FacultyExtract.service(FacultyExtract.java:116) 
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) 
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393) 
note The full stack trace of the root cause is available in the Apache Tomcat/8.0.3 logs. 

faculty.java

package com.college.faculty; 

public class Faculty { 
private int fid; 
private String fname; 
private String qulification; 
private String expDetail; 

public void setFacQul(int fid,String fname,String qulification,String expDetail) 
{ 
    this.fid = fid; 
    this.fname = fname; 
    this.qulification = qulification; 
    this.expDetail = expDetail; 
} 

public int getFid() { 
    return fid; 
} 
public void setFid(int fid) { 
    this.fid = fid; 
} 
public String getFname() { 
    return fname; 
} 
public void setFname(String fname) { 
    this.fname = fname; 
} 
public String getQulification() { 
    return qulification; 
} 
public void setQulification(String qulification) { 
    this.qulification = qulification; 
} 
public String getExpDetail() { 
    return expDetail; 
} 
public void setExpDetail(String expDetail) { 
    this.expDetail = expDetail; 
} 




} 
+1

у вас есть ошибка в вашем цикле: for (int i = 1; i> = 6; i ++) - это никогда не будет введено, потому что i никогда не> = 6 –

+0

Также ваш набор инструкций If не требуется - ваш цикл может быть длиной в одну строку: request.setAttribute («F» + i, (Faculty) it.next()); –

ответ

1

Вы используете верхний регистр «F1» в сервлет и строчный регистр в jsp «f1». Это должно быть одно и то же. Лучше всего определить интерфейс с константами для таких целей, как имена атрибутов, чувствительны к регистру.

//servlet  
request.setAttribute("F1",a1); //upper 
//jsp 
Faculty fac =(Faculty) request.getAttribute("f1"); // lower 

А также об ошибке указал на Си Келли:

«У Вас есть ошибка в вашем цикле: для (INT I = 1; я> = 6; я ++) - это никогда не войти, потому что я никогда не> = 6 - Si Kelly»

Должно быть для (INT I = 1; i.hasNext(); я ++) или вы будете иметь исключение, если меньше элементов в коллекции более 6

Смежные вопросы