Шаблон 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 просто верните эту переменную.

Другие вопросы по тегам