2012-06-28 2 views
0

배열리스트 빈에 배열리스트 값을 설정하는 동안 null 포인터 예외가 반환되는 것으로 생각합니다. 액션 클래스 확인하십시오 :struts에서 arraylist를 설정하는 동안 널 포인터 예외가 발생했습니다.

public ActionForward execute(ActionMapping mapping, ActionForm form, 
     HttpServletRequest request, HttpServletResponse response) 
     throws Exception { 

    ArrayList dailysheetdata; 
    DailysheetForm dailyform = (DailysheetForm) form; 
    Class.forName("com.mysql.jdbc.Driver"); 
    Connection connect = DriverManager.getConnection("jdbc:mysql://localhost/Stonecrusher?" 
         + "user=Stonecrusher&password=xxxxxx"); 
    System.out.println("Connection"+connect); 
    dailysheetdata = StoneCrusherData.getDailysheetData(connect); 
    if(dailysheetdata==null) 
     System.out.println("dailysheetdata null"); 
    else if(dailyform==null) 
    System.out.println("dailyform null"); 
    else 
    dailyform.setArraylist(dailysheetdata) ;//iam getting exception here 
    return mapping.findForward(SUCCESS); 
    } 

을 내 행동 양식은 내가 예외 다음과 톰캣이

"dailyform가 null" 을 보여주는 로그 취득을 실행하면

public class DailysheetForm extends ActionForm { 
    // some getter and setter methods i used 

    protected ArrayList arraylist; 
    public ArrayList getArraylist() { 
     return arraylist; 
    } 

    public void setArraylist(ArrayList arraylist) { 

     this.arraylist = arraylist; 

    } 

입니다

유형 예외 보고서

메시지

설명 서버가이 요청을 수행하지 못하게하는 내부 오류()가 발생했습니다.

예외는

javax.servlet.ServletException: java.lang.NullPointerException 
    org.apache.struts.action.RequestProcessor.processException(RequestProcessor.java:520) 
    org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:427) 
    org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:228) 
    org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913) 
    org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:449) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:621) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:722) 

root cause 

java.lang.NullPointerException 
    com.myapp.struts.DialysheetListAction.execute(DialysheetListAction.java:59) 
    org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:425) 
    org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:228) 
    org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913) 
    org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:449) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:621) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:722) 
note The full stack trace of the root cause is available in the Apache Tomcat/7.0.27 logs. 

나는 이유를 찾을 수 없습니다입니다. 문제를 해결하는 데 도움을주십시오. 이유를 말씀해주십시오.

+0

당신은 당신의 dailyform가 null 여부를 확인 했습니까? 형식이 null 인 경우 arrayList보다 null 인 경우 – kosa

+0

- ** DialysheetListAction.java : 59 **입니다. 그게 라인인지 확인 했니? –

+0

코드에서 NullPointerExceptions과 일치하는 행은 무엇입니까? – l15a

답변

1

문제는 프레임 워크별로 DailysheetForm 클래스 개체가 만들어지지 않았습니다.

이유는 FormBean 클래스와 Action 클래스를 사용하면 액션 클래스 즉에 제출 (어떤 데이터?) 어떤 페이지를 확인해야합니다 struts-config.xml

먼저 제대로되어 구성 din't 있습니다

DailysheetForm dailyform = (DailysheetForm) form; 

확인이 당신이 입력하는 라인 에 DailysheetForm 유형 개체 다음 프레임 워크가 자동으로 DailysheetForm 액션 양식의 세터 메소드를 호출하므로 어쩌면 여기에 당신이 얻을 수 NullPointerException 난 그렇게 생각해 ..

당신은 또한 패키지 이름을 확인 <form-beans> 매핑과 일치해야합니다 <action> tab name attribute valuestruts-config.xml 항목 즉 체크해야 할 한 가지 더 ...

관련 문제