无法访问直通属性的 f:selectItems 变量
Cannot access f:selectItems variable for passthrough attribute
我正在使用 JSF 2.2,我想在由 h:selectOneMenu
生成的每个 option
元素上显示一个 title
属性,通过 passthrough使用 f:selectItems
变量的属性。
我似乎无法访问 f:selectItems
变量来自定义我的 passthrough 属性
这是我到目前为止所做的
我要显示的实体
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 方法
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>
问题是我无法访问 p:title
的 item
变量,那里的输出只是空的。
这是生成的代码
<select>
<option title="Description : " value="1">Java</option>
<option title="Description : " value="2">PHP</option>
<option title="Description : " value="3">Python</option>
</select>
是否可以这样做,或者有其他方法吗?
我终于使用 jstl
c:forEach
循环和 f:selectItem
从此 post
找到了解决问题的方法
代码如下:
<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>
我正在使用 JSF 2.2,我想在由 h:selectOneMenu
生成的每个 option
元素上显示一个 title
属性,通过 passthrough使用 f:selectItems
变量的属性。
我似乎无法访问 f:selectItems
变量来自定义我的 passthrough 属性
这是我到目前为止所做的
我要显示的实体
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 方法
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>
问题是我无法访问 p:title
的 item
变量,那里的输出只是空的。
这是生成的代码
<select>
<option title="Description : " value="1">Java</option>
<option title="Description : " value="2">PHP</option>
<option title="Description : " value="3">Python</option>
</select>
是否可以这样做,或者有其他方法吗?
我终于使用 jstl
c:forEach
循环和 f:selectItem
从此 post
代码如下:
<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>