我有一个场景,我必须为用户提供一个选项来选择应用程序及其相关的配置文件。用户应至少选择一个应用程序和一个配置文件,也可以选择多个。每个应用程序都有自己的配置文件,并且可以有多个应用程序。我的用户Bean有一个应用程序VO列表,该应用程序VO有已选择(布尔值),应用程序ID(整数),应用程序名称(字符串)和配置文件列表。该配置文件列表包含 ProfileVO 列表,ProfileVO 具有 isSelected(布尔值)、配置文件 ID(int) 和配置文件名称(字符串)。
我是JSF的新手,并尝试使用数据表和选择布尔复选框,它工作正常。但是在这一点上,我不确定如何在相同的JSP中验证和显示错误消息,而其余用户输入的数据保持不变。此外,我不确定如何使用用户选中/取消选中的选项更新 bean。
当用户单击"提交我的验证"时,应为:
- 应至少选择一个应用程序
- 如果选择了应用程序,则应至少选择一个配置文件
- 在选择应用程序之前,应禁用配置文件复选框
- 当用户取消选中应用程序复选框时,应禁用配置文件复选框。
我有以下代码。请帮助我,如果有任何其他最佳方法可以完成相同的工作,也可以建议我。
<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>
我能够通过在 bean 中进行验证来实现,并且能够从应用程序列表中获取选定的值