0

我可以做这样的事情:

<b:navLink  ...    onclick="ajax:callBeanMethodA;ajax:callBeanMethodB" />

像这样不起作用,有什么办法让它起作用吗?

谢谢

4

2 回答 2

0

实际上,它确实有效。它比你想象的要简单一点。省略第二个ajax:前缀,一切正常:

JSF 标记:

<b:messages id="messages" />
<b:commandButton value="Click me!" 
                 onclick="ajax:menuView.save();menuView.reload()" 
                 update="@form">
</b:commandButton>

爪哇豆:

@ManagedBean
public class MenuView {
  public void save() {
    addMessage("Success", "Data saved");
  }
  public void reload() {
    addMessage("Success", "reloaded");
  }
}

在此处输入图像描述

于 2016-05-23T20:14:08.583 回答
0

我猜你最好的办法是将这两个或多个方法调用组合在你的支持 bean 中的一个方便方法中。

这样,您还可以确保以一致的顺序调用它们:

public void combinedMethod() {
    callBeanMethodA();
    callBeanMethodB();
}

然后只需从您的侦听器调用单个便捷方法:

<b:navLink  ...    onclick="ajax:beanName.combinedMethod" />

这种方法的其他优点是更好的可读性、可重用性和可维护性,因为您集中定义了组合逻辑。

于 2016-05-23T13:45:24.347 回答