尝试从Web表单填充hibernate bean复杂类型属性

时间:2013-02-05 08:29:53

标签: hibernate struts2 mapping

我使用hibernate和注释映射了我的对象。我可以单独查询和创建它们。但是当我需要从一个复合类型的表单中填充一个,即它包含另一个实体的外键时,我不知道如何填充它所代表的对象属性。所以像这样:

<s:textfield name="page.book" label="book"/>

应转换为bean Book的属性Page,后者又转换为表页中的外键book_id。我不确定如何将我的表单bean字段映射到复合类型,例如Book。我一直在NullPointerException的服务器端。

有人可以概述你如何填充一个不是简单类型的bean属性吗?

1 个答案:

答案 0 :(得分:1)

您需要为bean Book中的Page对象的每个属性创建一个输入。

public class Book {
    private int bookId;
    private String bookTitle;
    // and so on...

    // getters and setters *important*
}

public class Page {
    private Book book;
    // and so on...    

    // getters and setters *important*
}

你需要两个:

<s:textfield name="page.book.bookId" label="bookId"/>

<s:textfield name="page.book.bookTitle" label="bookTitle"/>

以及Book可能有的任何其他属性。

相关问题