Невозможно получить доступ к переменной f:selectItems для атрибута passthrough
Я использую JSF 2.2 и хочу отобразить title
атрибут на каждом option
элемент, созданный h:selectOneMenu
с проходом с помощью атрибута f:selectItems
переменная.
Кажется, я не могу получить доступ к f:selectItems
переменная для настройки моего сквозного атрибута
Вот что я сделал до сих пор
Моя сущность для отображения
public class ItemBean {
private int id;
private String strName;
private String strDescription;
public ItemBean(int id, String strName, String strDescription) {
this.id = id;
this.strName = strName;
this.strDescription = strDescription;
}
// Getters and Setters
}
Мой метод бобов для получения списка сущностей
public List<ItemBean> getItems() {
return new ArrayList<ItemBean>(){
{
add(new ItemBean(1, "Java", "Java programming language"));
add(new ItemBean(2, "PHP", "Yet another language"));
add(new ItemBean(3, "Python", "Not a snake at all"));
}
};
}
мой h:selectOneMenu
в представлении
<h:selectOneMenu>
<f:selectItems value="#{bean.items}" var="item"
itemValue="#{item.id}"
itemLabel="#{item.strName}"
p:title="Description : #{item.strDescription}"/>
</h:selectOneMenu>
Проблема в том, что я не могу получить доступ к item
переменная для p:title
, вывод там просто пустой.
Вот сгенерированный код
<select>
<option title="Description : " value="1">Java</option>
<option title="Description : " value="2">PHP</option>
<option title="Description : " value="3">Python</option>
</select>
Можно ли так сделать или есть другой способ?
1 ответ
Решение
Я наконец нашел решение своей проблемы с помощью jstl
c:forEach
петля и f:selectItem
из этого поста Использование f:selectItems var в атрибуте passtrough
Вот код:
<h:selectOneMenu>
<c:forEach items="#{bean.items}" var="item">
<f:selectItem itemValue="#{item.id}"
itemLabel="#{item.strName}"
p:title="Description : #{item.strDescription}"/>
</c:forEach>
</h:selectOneMenu>