2014-01-22 9 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, сетка будет использовать id для столбца с key=true. Когда вы используете сетку для выполнения добавления, будет вызываться setId() со значением null. Вы не можете установить null в примитивный тип, поэтому вам необходимо изменить свойство int id; и связанный с ним приемник/сеттер, чтобы использовать Integer вместо int. Это должно решить вашу проблему.