Шаблон Datalist с Jsf 2 и CDI
У меня есть класс, как...
@RequestScoped
public class UserList
...
public List<User> getUserList(){
return getEntityManager().createQuery(getCriteria()).getResultList();
//getCriteria() hard query need userType parameter to be populated
}
}
Все страницы могут вызывать этот класс, но каждая с другим параметром, например, "userType=A". Значения этих параметров остаются на каждом управляемом компоненте (области диалога) каждой страницы.
Как или когда заполнить параметр DataList? Есть шаблон для dataList с jsf2 и CDI?
2 ответа
JSF не предоставляет компонент списка данных из коробки. Вы можете, однако, создать свой собственный <ui:repeat/>
) или используйте одну из библиотек компонентов - Tomahawk, PrimeFaces, RichFaces и многие другие.
Что касается параметра - просто введите ваш bean-объект в диалоге в запросный bean-объект и прочитайте его.
То, как вы делаете это в методе get, очень плохо. Вы заметите, что этот метод вызывается много раз и замедлит рендеринг страницы. Что вы должны сделать, это получить данные в @PostConstruct
метод и установите его для переменной-члена, затем в вашем методе get просто верните эту переменную.