使用Managed Bean中的弹簧注入显示数据库中的数据表值

时间:2012-04-05 13:16:24

标签: spring jsf

JSF + Spring遇到了这个设计问题: -

我在要加载的页面上有一个数据表,显示用户详细信息,该数据库将从数据库中获取。

所以我的jsf页面有:

 <p:dataTable id="userTable" var="user" value="#{userBean.users}" rowKey="#{user.userID}"
                                     selection="#{userBean.selectedUser}" paginator="true" rows="10" >

托管bean有:

private List<UserDetails> users; // getters and setters

现在我的托管bean需要弹出一个helper类来从DB中获取用户。

@ManagedProperty(value="#{userBO}")
private UserBO userBO;

问题是,当对象完全实例化时会发生弹簧注入。因此,我无法将userBO.getUsersFromDataBase()放入构造函数中,并将其分配给我的users

我无法弄清楚如何在我的managedBean中使用spring注入从DB中获取用户。 Spring需要完成ManagedBean的实例化,以便它可以注入帮助程序类,但是在完全实例化ManagedBean之前,jsf页面会请求数据库值。有点卡住:/

1 个答案:

答案 0 :(得分:1)

我不熟悉spring,但是在标准的JSF中,你可以在构造之后和依赖注入之后调用的方法上使用@PostConstruct注释,例如:

@PostConstruct
public void init() {
    userBO.getUsersFromDataBase()
}