<分区>
我有一个对象,比如 Users,它有 10 个属性,我想将它绑定(bind)到 h:selectManyCheckbox 并想显示它的两个特定字段作为 f:selectItems 的 itemLabel 和 itemValue。我怎样才能做到这一点?请帮忙!
<分区>
我有一个对象,比如 Users,它有 10 个属性,我想将它绑定(bind)到 h:selectManyCheckbox 并想显示它的两个特定字段作为 f:selectItems 的 itemLabel 和 itemValue。我怎样才能做到这一点?请帮忙!
最佳答案
在你的 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
与属性的
您打算用作项目的名称
值(value)
请注意,在 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
}
关于java - 如何使用 h :selectManyCheckbox 绑定(bind)对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5456586/