Binding = компонентный компонент
Значение = компонент поддержки данных модели
Итак, у вас правильно установлены значения и привязки (по крайней мере, насколько я вижу). Ваша проблема может быть связана с тем, что вы не кэшируете список, который вы возвращаете из базы данных в getQueryCategories ().
Вы действительно не можете представить, как часто будет вызываться getQueryCategories () в процессе рендеринга этого dataTable, поэтому неплохо сделать что-то вроде этого:
// Somewhere near the top of the handler class.. create a cache variable:
private ArrayList<Category> qCategories = null;
// now for getQueryCategories
public ArrayList<Category> getQueryCategories(){
if ( qCategories == null ) { // qCategories should be a member of the handler
qCategories = (ArrayList<Category>)HibernateUtil.getSession().createCriteria(Category.class).list();
}
return qCategories
}
Этот вид кеширования очень полезен в приложениях JSF с обработчиками, которые являются сеансами даже с выделенной областью запроса, поскольку опять же вы не можете точно знать, как часто JSF будет оценивать ваше выражение «значение» в dataTable.