【问题标题】:Ajax render resets selected checkboxesAjax 渲染重置选中的复选框
【发布时间】:2013-09-22 21:33:40
【问题描述】:

我有一个带有布尔属性的对象列表。我正在使用复选框列表为列表中的每个对象选择/取消选择该属性。我的问题是重新呈现表单后,已选中的复选框显示为空。这是为什么呢?

<h:form>
    <ui:repeat value="#{bean.employeeList}" var="employee">
        <h:selectBooleanCheckbox value="#{employee.selected}">
        <h:outputText value="#{employee.name}" />
        </h:selectBooleanCheckbox>
    </ui:repeat>

    <h:selectBooleanCheckbox value="#{bean.isDone}">
        <f:ajax event="click" render="@form" />
    </h:selectBooleanCheckbox>
</h:form>

【问题讨论】:

  • backing bean 的作用域是什么? employeeList 在什么时候被填充?
  • bean 是 ViewScoped 并且列表填充在 PostConstruct 方法 @kolossus
  • 确认@PostConstruct 没有被重复调用?
  • 好像没有。 @kolossus

标签: jsf facelets


【解决方案1】:

&lt;f:ajax&gt; 默认处理当前组件,如execute="@this"。如果您打算处理整个表单,则需要通过@form 明确指定整个表单。

<f:ajax execute="@form" render="@form" />

请注意,我删除了event="click"。这已经是默认了。

【讨论】:

    猜你喜欢
    • 2019-02-18
    • 2022-09-30
    • 1970-01-01
    • 1970-01-01
    • 2019-04-12
    • 1970-01-01
    • 2022-01-05
    • 2017-08-24
    • 1970-01-01
    相关资源
    最近更新 更多