java - 如何使用 h :selectManyCheckbox 绑定(bind)对象

标签 java jsf

<分区>

我有一个对象,比如 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/

相关文章:

java - 创建自定义异常并从服务器抛出它

java - cat Unix命令直接来自java,不应该调用shell脚本

java - JDialog布局问题

java - 绕过 Java 异常规范...?

java - Primefaces p :picklist - how I capture the event of selecting an item in the target list?

JSF 导航重定向到上一页

jsf - 覆盖/实现 getRowKey() 和 getRowData() 方法,当存在组合多列作为行键的复合主键时

java - Tomcat 8.0.20 内存不足错误

javascript - 检查 PrimeFaces widgetVar 是否存在

jsf - Primefaces 5.0 对话框小部件变量