我有一个像......这样的课程。
@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参数? dataList有一个模式,带有jsf2和CDI?
答案 0 :(得分:0)
JSF不提供开箱即用的数据列表组件。但是,您可以创建自己的(查看<ui:repeat/>
)或使用其中一个组件库 - Tomahawk,PrimeFaces,RichFaces,仅举几例。
至于参数 - 只需将会话范围的bean注入请求范围的bean并读取它。
答案 1 :(得分:0)
你在get方法中这样做的方式非常糟糕。你会注意到这个方法被多次调用,并且会减慢页面渲染速度。你应该做的是用@PostConstruct
方法获取数据并将其设置在成员变量上,然后在你的get方法中只返回该变量。