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

我的托管 Bean:

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

2 回答 2

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

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

于 2012-06-07T14:08:53.030 回答
0

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

<h:selectBooleanCheckbox value="#{bean.rewrite}" valueChangeListener="{#bean.valueChangeMethod}">
<a4j:ajax execute="@region" event="change" />
</h:selectBooleanCheckbox> 
于 2013-04-19T09:44:52.383 回答