0

我有一个像...

@RequestScoped
public class UserList
...
public List<User> getUserList(){
  return getEntityManager().createQuery(getCriteria()).getResultList();
  //getCriteria() hard query need userType parameter to be populated
}
}

所有页面都可以调用这个类,但每个页面都有不同的参数,比如“userType=A”。这些参数的值保留在每个页面的每个 Managed Bean(Conversation Scoped) 上。

如何或何时填充 DataList 参数?jsf2和CDI的dataList有模式吗?

4

2 回答 2

0

您在 get 方法中执行此操作的方式非常糟糕。您会注意到此方法被多次调用,并且会减慢页面渲染速度。您应该做的是在@PostConstruct方法中获取数据并将其设置在成员变量上,然后在您的 get 方法中简单地返回该变量。

于 2013-05-22T17:07:46.347 回答
0

JSF 没有提供开箱即用的数据列表组件。但是,您可以创建自己的(查看<ui:repeat/>)或使用其中一个组件库 - Tomahawk、PrimeFaces、RichFaces 等等。

至于参数 - 只需将您的对话范围 bean 注入请求范围 bean 并读取它。

于 2013-05-22T13:36:25.077 回答