从单个html表单更新不同的jpa实体(jsf页面)

时间:2011-12-08 05:04:31

标签: java jsf persistence entities

我一直在审查在线发布的一些样本,他们都做了简单的CRUD。

1 jsf page = 1 entity = 1 table.

大多数时候,这就是我所看到的。但是,如果您只有1个带有1个表单的jsf页面,并且您需要向3个实体提供数据,该怎么办?拥有名称,公司和业余爱好等形式领域。

他们的价值需要放到实体

person.name, work.company_name and other_info.hobby.

这是通过绑定自动完成的吗?或者我们需要手动分配值?请说清楚,我现在有点困惑

1 个答案:

答案 0 :(得分:1)

我不确定我是否看到了这个问题。你可以让它们成为同一个支持bean的属性:

@ManagedBean
@ViewScoped
public class Profile {

    private Person person;
    private Work work;
    private OtherInfo otherInfo;

    // ...
}

<h:inputText value="#{profile.person.name}" />
<h:inputText value="#{profile.work.companyName}" />
<h:inputText value="#{profile.otherInfo.hobby}" />

或者WorkOtherInfo@OneToOnePerson的关系(在现实世界中,他们无疑有):

@ManagedBean
@ViewScoped
public class Profile {

    private Person person; // Has in turn Work and OtherInfo properties.

    // ...
}

<h:inputText value="#{profile.person.name}" />
<h:inputText value="#{profile.person.work.companyName}" />
<h:inputText value="#{profile.person.otherInfo.hobby}" />