JSF Datatable和SelectBooleanCheckBox

时间:2011-05-11 15:54:52

标签: jsf

我有一个场景,我必须为用户提供一个选项,以选择应用程序及其相关的配置文件。用户应该选择至少一个应用程序和一个配置文件,他也可以选择多个。每个应用程序都有自己的配置文件,可以有多个应用程序。我的UserBean有一个ApplicationVO列表,ApplicationVO有isSelected(boolean),application id(int),application name(String)和Profile List。该配置文件列表具有ProfileVO列表,ProfileVO具有isSelected(boolean),profile id(int)和Profile name(String)。

我是JSF的新手,并尝试使用数据表和SelectBooleanCheckBox,它工作正常。但此时我不确定如何验证并在同一JSP中显示错误消息,其余用户输入的数据完好无损。此外,我不知道如何使用用户选中/取消选中的选项更新bean。

当用户点击提交时,我的验证应为:

  1. 应至少选择一个应用程序
  2. 如果选择了某个应用程序,则应至少选择一个配置文件
  3. 在选择应用程序之前,应禁用配置文件复选框
  4. 当用户取消选中应用程序复选框时,应禁用配置文件复选框。
  5. 我有以下代码。请帮助我,如果还有其他最佳方法可以帮助我,也可以建议我。

    <h:dataTable value="#{UserBean.applicationList}" var="appList">
        <h:column>
            <f:facet name="header">
                <h:outputText value="Applications" />
            </f:facet>
            <h:selectBooleanCheckbox value="#{appList.isSelected}" label="#{appList.applicationName}"/>
            <h:outputText value="#{appList.applicationName}" />
        </h:column>
        <h:column>
            <f:facet name="header" >
                <h:outputText value="Profiles" />
            </f:facet>
            <h:dataTable value="#{appList.profileList}" var="profileList">
                <h:column>
                    <h:selectBooleanCheckbox value="#{profileList.isSelected}" />
                    <h:outputText value="#{profileList.profileName}" />
                </h:column>
            </h:dataTable>
        </h:column>
    </h:dataTable>
    

1 个答案:

答案 0 :(得分:0)

我能够通过在bean中验证来实现,并且能够从ApplicationList中获取所选值