0

我正在使用 JSF2.0,其中我根据该页面上的用户活动使用 ajax 渲染一组组件。这工作正常但是,在组件被渲染后,我正在根据此渲染组件中的用户活动再次执行 ajax 调用这是我的 ajax 调用失败的地方。我在两种情况下都做了相同的实现,但不知道为什么会失败。有人可以帮我找出错误吗?

以下是代码:

第一个ajax调用:

 <h:commandLink id="addMultiple" value="Add" >                  
<f:ajax execute="addMultiple" render="additionalField " listener="#{Bean.doAddMultiple}"/>
</h:commandLink>

渲染组件:

 <h:panelGroup id = "additionalField"   > 
 <h:outputText  value="New Field:"  rendered="#{Bean.multiple eq 'true'}" />
 <h:inputText style="width:10%" value="#{Bean.Number}"  rendered="#{Bean.multiple eq 'true'}" />
<h:commandButton id="add" value = "Add"  rendered="#{Bean.multiple eq 'true'}">
<f:ajax event="click" execute="add" render="textBoxes" listener="#{Bean.doaddTextboxes}"/>  
</h:commandButton>
</h:panelGroup>

上面的组件渲染得很好。我有相同形式的“textBoxes”组件以及将 AJaxBehaviour 事件作为参数的托管 bean 方法。但是这里的问题是甚至没有触发第二个 AJAX 调用。这里有什么问题?

4

1 回答 1

1

将其更改为@ViewScoped,通常 ajax 最好使用 atlesat 完成@ViewScoped...导致在每次提交时创建 bean 的新实例...

还要看看这个JSF - Ajax 调用 - 这段代码有什么问题?就是@ViewScoped 的好处和陷阱

另外,看看BalusCArjan Tijms在这里的答案 JSF - Can @PostConstruct block setter method by using an ajax call?

于 2012-12-11T11:08:53.897 回答