2016-05-27 10 views
1

Я использую JSF 2.2, и я хочу, чтобы отобразить атрибут каждого option элемента генерируемого h:selectOneMenu с title транзитной передачи с помощью атрибута переменной f:selectItems.не удается получить доступ к 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 
} 

Моего backbean метода для получения списка лиц

Мои 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

я наконец нашел решение моей проблемы, используя jstlc:forEach петлю и f:selectItem с этого поста Using f:selectItems var in passtrough attribute

Вот код:

<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>