Невозможно выполнить добавление функций 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]

.....

Я попытался выполнить функцию добавления, но потерпел неудачу. Можете ли вы сказать мне, что именно вызывает проблему? Я выполнил код из бизнес-класса и обнаружил, что код работает нормально и может добавлять новую запись. Но он не может добавить сетку формы.


person user3150012    schedule 22.01.2014    source источник


Ответы (1)


Несмотря на то, что вы назвали первый столбец bookId, сетка будет использовать id для столбца с key=true. Когда вы используете сетку для добавления, setId() будет вызываться со значением null. Вы не можете установить нуль для примитивного типа, поэтому вам нужно изменить свойство int id; и связанный геттер/сеттер, чтобы использовать Integer вместо int. Это должно решить вашу проблему.

person Richard Lewan    schedule 15.10.2014