【问题标题】:JSF Datatable and SelectBooleanCheckBoxJSF 数据表和 SelectBooleanCheckBox
【发布时间】:2011-05-11 15:54:51
【问题描述】:

我有一个场景,我必须让用户选择应用程序及其相关配置文件。用户应至少选择一个应用程序和一个配置文件,并且他还可以选择多个。每个应用程序都有自己的配置文件,并且可以有多个应用程序。我的 UserBean 有一个 ApplicationVO 列表,而 ApplicationVO 有 isSelected(布尔值)、应用程序 ID(整数)、应用程序名称(字符串)和配置文件列表。该 Profile 列表具有 ProfileVO 列表,而 ProfileVO 具有 isSelected(boolean)、profile id(int) 和 Profile name(String)。

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

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

  1. 至少应选择一个应用程序
  2. 如果选择了应用程序,则应至少选择一个配置文件
  3. 在选择应用程序之前,应禁用配置文件复选框
  4. 当用户取消选中应用程序复选框时,应禁用配置文件复选框。

我有以下代码。请帮助我,如果有其他最好的方法来完成同样的事情,也可以建议我。

<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>

【问题讨论】:

  • 我真的很坚持这一点。如果有人可以帮助我,我将不胜感激。谢谢
  • @Solomon:欢迎来到 StackOverflow! 嗯,您似乎想说#{profileList.selected}(没有is)。稍后我会仔细看看。
  • 由于 ProfileVO 具有名为“isSelected”的属性,因此我在正在运行的 JSP 中给出了相同的名称。我被困在验证以及如何将选定的用户输入传回 bean 上。我选择了复选框,因为它在 UI 中看起来不错,但如果我不能使用该控件来满足我的要求,我愿意接受其他控件和设计。
  • 我不知道继续进行。我真的需要一些帮助。感谢您的帮助

标签: jsf


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-04-03
    • 2012-12-20
    • 2011-01-03
    • 2014-02-06
    • 2014-01-17
    • 1970-01-01
    • 2012-12-30
    • 1970-01-01
    相关资源
    最近更新 更多