无法执行添加功能Struts2-jquery-grid来添加新数据

时间:2014-01-22 17:41:42

标签: jqgrid struts2-jquery 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]

.....

我尝试执行添加功能但失败了。你能告诉我究竟是什么导致了这个问题吗?我从业务类执行代码,我发现代码工作正常,并且能够添加新条目。但它无法添加表单网格。

1 个答案:

答案 0 :(得分:0)

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