在<h:datatable> </h:datatable> </h:selectbooleancheckbox>中使用<h:selectbooleancheckbox>时未调用Ajax方法

时间:2012-06-07 11:53:47

标签: jsf-2

我正在尝试使用JSF 2.0执行以下代码,我正在尝试为“布尔复选框”的值更改调用Managed Bean方法,我正在尝试使用标记。但是没有调用托管bean方法。

我的JSF代码如下:

*<h:panelGrid columns="3" styleClass="prepend-2 span-20">
<h:dataTable value="#{report.resultList}" var="list">
<h:column >
<h:selectBooleanCheckbox layout="pageDirection"
value="#{list.selected}">
<f:ajax event="change"
listener="#{report.getStaffIdList}" render="@form" immediate="true" execute="@this" />
</h:selectBooleanCheckbox>
</h:column>
<h:column>
<f:facet name="header">StaffID</f:facet>
<h:outputText value="#{list.staffID}"></h:outputText>
</h:column>
<h:column>
<f:facet name="header">Name</f:facet>
<h:outputText value="#{list.name}"></h:outputText>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="#{report.searchQueryHeading}" />
</f:facet>
<h:outputText value="#{list.queryResult}"></h:outputText>
</h:column>
</h:dataTable>
</h:panelGrid>**

My Managed Bean:

public void getStaffIdList(AjaxBehaviorEvent ve){
  System.out.println("inAjax");
}

2 个答案:

答案 0 :(得分:0)

  1. selectbooleancheckbox没有更改事件。使用点击事件。
  2. 你也可以尝试没有ajax的方法。将以下代码添加到selectbooleancheckbox:

    valueChangeListener =“#{bean.listener}”onchange =“submit()”

答案 1 :(得分:0)

要重绘唯一的组件,请使用此方法

<h:selectBooleanCheckbox value="#{bean.rewrite}" valueChangeListener="{#bean.valueChangeMethod}">
<a4j:ajax execute="@region" event="change" />
</h:selectBooleanCheckbox>