在相同的元素Bootsfaces上使用多个AJAX调用

时间:2016-05-22 20:23:49

标签: ajax jsf bootsfaces

我可以这样做:

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

就像那样不起作用,有什么方法可以让它起作用吗?

由于

2 个答案:

答案 0 :(得分:0)

我猜你最好把这两个或多个方法调用合并到你的支持bean中的方便方法中。

通过这种方式,您还可以确保以一致的顺序调用它们:

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

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

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

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

答案 1 :(得分:0)

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

JSF标记:

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

Java bean:

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

enter image description here