我正在使用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 :(得分:0)
即使您将第一列命名为bookId
,网格也会使用id
作为key=true
的列。使用网格执行添加时,将使用值null调用setId()
。您无法将null设置为基本类型,因此您需要将int id;
属性和关联的getter / setter更改为使用Integer
而不是int
。这应该可以解决您的问题。