0

如果我从第一页导航到第二页,当我单击第一个页面的提交按钮时,控制转到与第一页相对应写入的托管 bean,我想从数据库中获取一些结果并将它们显示到第二页,如果我设置在第一个 Managed Bean 的 action 方法中,将数据库值放入第二页对应的 Managed bean,然后我就可以在第二页上获取这些值。

请建议我的方法是否正确?

4

1 回答 1

0

您可以通过这种方式将名为 Bean1 的 bean 注入 Bean2

@ManagedBean
@RequestScoped
public Bean2 {
     @ManagedProperty(value="#{bean1}")//this is EL name of your bean 
     private Bean1 injectedBean;

     public void setBean1(Bean1 value) {
          injectedBean = value; //provide setter for it
     }

     @PostConstruct
     private void init() {
         List<YourData> list = injectedBean.getDBData(); //now you can fetch your list
     }

请注意,您必须为注入提供 setter,并且注入 bean 的范围应始终与您的 bean 范围相同或更高(在这种情况下,Bean1 必须至少为 RequestScope)

PS 另外,您可以拥有某种 DAO bean,它可以为您执行所有数据库数据库操作(它可以是 EJB bean 甚至 JSF Managed Bean),然后将其注入需要与您的数据库合作的每个 ManagedBean。

于 2012-05-17T07:07:27.787 回答