如何在Struts2 + Hibernate中填充数据库中的select?

时间:2012-07-25 11:33:08

标签: database hibernate select struts2 auto-populate

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

2 个答案:

答案 0 :(得分: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(); 
    }

    ...

}

答案 1 :(得分:0)

不,AJAX没有必要。在action方法的代码中,初始化列表:

public String execute() {
    this.books = bookDAO.selectBooks(); 
    return SUCCESS;
}

然后,JSP页面可以访问书籍列表。