Jsf p:commandButton不触发动作
问题是:actionlistener不想被解雇Jsf p:commandButton不触发动作,jsf,primefaces,Jsf,Primefaces,问题是:actionlistener不想被解雇 @ManagedBean(name="hotelsController") @SessionScoped public class HotelsController implements Serializable { public void requestHotelAvail(ActionEvent event) { request = new Request(df.format(arrivalDate), df
@ManagedBean(name="hotelsController")
@SessionScoped
public class HotelsController implements Serializable {
public void requestHotelAvail(ActionEvent event) {
request = new Request(df.format(arrivalDate), df.format(departureDate));
}
}
和xhtml
<h:panelgroup id="rooms"/>
<h:form id="hotelSearch">
<p:commandButton actionListener="#{hotelsController.requestHotelAvail}" value="submit" update="rooms" />
</h:form>
我已经尝试了所有我可以搜索的内容,将@managedbean
更改为@component
设置为导入导入javax.faces.event.ActionEvent代码>
但它仍然没有发射任何东西
表单是在一个p:accordion
中,当与h:commandbutton
一起使用时,它可以正常工作
编辑:抱歉误导。房间在单击后更新,但actionListener未被激发。因此,房间将不会获得任何新数据。更新房间之前,需要触发requestHotelAvail
中的重要代码,而不是更新房间
EDIT2:PrimeFaces 2.2.1
-我已经阅读了PrimeFaces的整个手册,但没有对此进行解释,因为我已经完成了手册中的所有说明
我尝试过使用action
而不是actionListener
而不使用ActionEvent
,但它从来没有做过任何事情。使用
效果很好,但我希望ajax引擎只刷新房间
面板组
更新:现在它可以工作了。表单不能在
中,但为什么以及如何在那里启用它?现在我不用它就可以使用表单。我怀疑h:commandLink的不同行为来自ajax/非ajax处理
默认情况下,如果不使用f:ajax,那么-h:commandLink是非ajax的,并且整个页面都会重新呈现。Primefaces p:commandLink正在使用ajax,您将房间指定为要更新的组件。在您的案例中,房间是外部形式的,所以应该将其命名为:房间(注意冒号),而不仅仅是房间
更新:您是否使用h:commandLink尝试过ajax?它将是:
<h:commandButton action="#{hotelscontroller.requestHotelAvail}" value="submit">
<f:ajax render=":rooms"/>
</h:commandButton>
另外,我对primefaces不太熟悉,但也许您可以尝试使用附加的process=“@this”
-明确指示要处理的组件,尽管我假设这是基本库中的默认组件。您尝试检查响应:
打开Chrome或Firefox->Inspect Element->Network并遵循ajax调用
使用“不触发任何内容”时,您的实际意思是1)未调用该方法(由调试器、记录器或sysout确认),或者2)未更新文件室
面板组?不会解决您的问题,但最好将表单组件置于所有其他组件之上,只要它不干扰其他表单(避免内部表单)。此外,在该方法中放入一些sysout的
,以确保或在该类中创建另一个方法。。。在服务器日志中没有显示任何内容?比如找不到bean,或者找不到操作/属性?如果您使用Netbeans,请确保您的类是正确构建的…什么版本?尝试action
而不是actionListener
,并删除您没有使用的ActionEvent
参数。我没有使用h:commandLink,问题不在于更新
而是actionListener
。更新工作正常
它现在的行为与
相同,因此更新了panelgroup,但不会触发操作。对于managedBean或您试图放置的整个xhtmlCan在p:accordion之外,肯定会有更大的问题?这听起来像是一个迭代组件,而且这些组件往往会有问题。谢谢你,这很有魅力,但现在我必须找出为什么以及如何在中使用它。如果你认为这是p:accordion的问题,请提交一个问题。