2014-01-22 4 views
0

Struts2-jquery-grid를 사용하여 작업 중이며 기존 항목을 편집/삭제할 수 있습니다. 그러나 나는 새로운 진입을 추가하기 위해 문제에 직면하고있다. 추가 기능이 작동하지 않는 이유를 알아 내려고했습니다.추가 기능을 실행할 수 없습니다. Struts2-jquery-grid를 사용하여 새 데이터 추가

gridTable.jsp

<s:url var="remoteurl" action="jsonFormatDate" /> 
<sj:head jqueryui="true" jquerytheme="redmond" /> 
<sjg:grid id="gridtable" 
     dataType="json" 
     href="%{remoteurl}" 
     pager="true" 
     gridModel="gridModel" 

     editurl="gridTableEdit" 

     navigator="true" 
     navigatorAdd="true" 
     navigatorEdit="true"   
     navigatorDelete="true" 
> 

<sjg:gridColumn name="bookID" index="bookID" title="bookID" sortable="true" editable="true" hidden="false" key="true"/> 
<sjg:gridColumn name="bookTitle" index="bookTitle" title="bookTitle" editable="true" /> 
</sjg:grid> 

액션 층 [ridTable.java] :

public class GridTable extends ActionSupport { 

    int id; 
    String oper; 
    String bookTitle; 

    //getter and setter 

    // display the grid into the jsp page 
    public String gridTableDisplay() { 
     return SUCCESS; 
    } 

    public String gridTableEdit() { 

     if (oper.equalsIgnoreCase("add")) { 
      BookBusiness business = new Business(); 
      business.addBook(bookTitle); 
     } 

     else if (oper.equalsIgnoreCase("edit")) { 
      BookBusiness business = new Business(); 
      business.editBook(bookTitle); 
     } 

     else if (oper.equalsIgnoreCase("del")) { 
      BookBusiness business = new Business(); 
      business.deleteBook(bookTitle); 
     } 

     return SUCCESS; 
    } 

} 

비즈니스 층 [BookBusiness.java]

public void addBook(String bookTitle) { 
     BookDAO dao = new BookDAO(); 
     Book newBook = new Book(); 
     newBook.setTitle(bookTitle) 
     dao.updateBook(newBook); 
} 

public Book editBook(....) { 
... 
} 

public void deleteBook(...) { 
.... 
} 
내 코드는 모두 다음과 같다

DAO 레이어 [BookDAO.java]

..... 

추가 기능을 실행하려했지만 실패했습니다. 문제의 원인을 정확히 말해 줄 수 있습니까? 비즈니스 클래스에서 코드를 실행했는데 코드가 제대로 작동하고 새로운 항목을 추가 할 수 있다는 것을 알았습니다. 그러나 폼 그리드를 추가하지 못합니다.

답변

0

첫 번째 열의 이름을 bookId으로 지정 했는데도 key=true 인 열에는 표 형태로 id이 사용됩니다. 표를 사용하여 추가를 수행하면 setId()이 값 null과 함께 호출됩니다. null을 기본 유형으로 설정할 수 없으므로 int id; 속성과 연결된 getter/setter를 int 대신 Integer을 사용하도록 변경해야합니다. 이렇게하면 문제가 해결됩니다.