我有一个对象,比如用户,它有10个属性,我想把它绑定到h:selectManyCheckbox并想要显示它的两个特定字段作为itemLabel& f的itemValue:selectItems。我怎样才能做到这一点?请帮忙!
答案 0 :(得分:3)
在facelet中使用以下内容:
<h:selectManyCheckbox id="yourElementID"
value="#{myBean.selectedList}">
<f:converter converterId="userConverter"/>
<f:selectItems value="#{myBean.availableItemsList}"
var="item"
itemLabel="#{item.labelAttribute}"
itemValue="#{item.valueAttribute}"/>
</h:selectManyCheckbox>
替换:
myBean
使用您的bean名称
selectedList
包含的列表
选定的值
availableItemsList
以及清单
您的商品
labelAttribute
,其属性为
您打算用作项目的名称
标签
valueAttribute
您打算用作项目的名称
值
请注意,f:converter
元素中引用了转换器。 h:selectManyCheckbox
将字符串作为值返回。因此,您需要一个用于将对象转换为字符串的User类转换器,反之亦然。您可以将其实现为托管bean的内部类或单独的类。
@FacesConverter(value="userConverter")
public static class UserConverter implements Converter {
public Object getAsObject(FacesContext facesContext,
UIComponent component, String value) {
// your code to convert String to Object
}
public String getAsString(FacesContext facesContext,
UIComponent component, Object object) {
// your code to convert Object to String
}