同时调用多个backing bean方法

new*_*ack 19 jsf jsf-2

有没有办法从JSF中的不同支持bean调用多个方法?

我有一个存储用户信息的应用程序.我有多个支持bean,分为计划,地址,电话等.

当应用程序最初加载时,所有工作都会找到,但由于我的所有视图都是类型@ViewScope,因此即使显示新用户,也会保留计划,地址,电话列表.

当用户离开他们正在查看的当前人时,我需要手动将日程表,地址和电话列表设置为null我需要在一个时间点调用每个托管bean中的方法(当用户点击时commandLink).

是否可以在一个commandLink上调用多个bean方法?

Sel*_*vin 31

<h:commandLink action="#{jsfBean.submit}" value="execute multiple methods">
    <f:actionListener binding="#{jsfBean1.actionListener}"/>
    <f:actionListener binding="#{jsfBean2.actionListener}"/>
    <f:actionListener binding="#{jsfBean3.actionListener}"/>
</h:commandLink>
Run Code Online (Sandbox Code Playgroud)

使用上面的代码,bean中的方法具有('default')签名 actionListener(ActionEvent event)

当您单击commandLink时,将首先执行submit方法.之后所有其他actionListeners将逐个执行...希望有所帮助;)

  • *"请注意,JSF实现总是在操作之前调用动作侦听器."* - [Core JavaServer Faces(第3版)](http://www.corejsf.com/),第314页. (12认同)

Sea*_*ean 2

您可以让您的 commandLink 引用一种方法,该方法本身会调用所有必要的方法。