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