0

我正在使用 Struts2+Hibernate。我在 JSP 页面中有一个表单,其中有一个我需要从 Database 填充它的选择。我已经实现了 DAO 类 BookDAO(selectBooks()、updateBook(Book book))。我创建了 Action 类,在其中声明了 Book 的 ArrayList 和 BookDAO 类的对象。看来我需要在 Action 类中定义一个函数,该函数调用 selectBooks 并填充我的 ArrayList,但是这个动作应该在加载我的 JSP 页面时自动调用。在我的情况下是否需要 Ajax?谢谢你。

4

2 回答 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 回答