我正在使用 Struts2+Hibernate。我在 JSP 页面中有一个表单,其中有一个我需要从 Database 填充它的选择。我已经实现了 DAO 类 BookDAO(selectBooks()、updateBook(Book book))。我创建了 Action 类,在其中声明了 Book 的 ArrayList 和 BookDAO 类的对象。看来我需要在 Action 类中定义一个函数,该函数调用 selectBooks 并填充我的 ArrayList,但是这个动作应该在加载我的 JSP 页面时自动调用。在我的情况下是否需要 Ajax?谢谢你。
user1459961
问问题
1702 次
2 回答
1
JB Nizet 的回答很好,不过我建议采用稍微不同的方法。
将 ArrayList 赋值放在 execute 方法中的问题在于,它仅适用于该特定方法,如果添加了其他操作方法,则需要重新创建。
您最好将操作设为 Preparable 并添加一个 prepare 方法来执行所有数据库调用和列表分配。这样,您的所有数据都将在整个操作类中可用,而无需沿途复制代码。
将首先调用 prepare 方法,然后再调用操作中的任何其他方法。
public class MyAction extends ActionSupport implements Preparable{
private ArrayList<Books> books;
@Override
public void prepare() throws Exception {
this.books = bookDAO.selectBooks();
}
...
}
于 2012-07-25T13:25:06.790 回答
0
不,AJAX 不是必需的。在您的操作方法的代码中,初始化列表:
public String execute() {
this.books = bookDAO.selectBooks();
return SUCCESS;
}
然后,JSP 页面将可以访问书籍列表。
于 2012-07-25T11:51:46.627 回答