我可以做这样的事情:
<b:navLink ... onclick="ajax:callBeanMethodA;ajax:callBeanMethodB" />
像这样不起作用,有什么办法让它起作用吗?
谢谢
我可以做这样的事情:
<b:navLink ... onclick="ajax:callBeanMethodA;ajax:callBeanMethodB" />
像这样不起作用,有什么办法让它起作用吗?
谢谢
实际上,它确实有效。它比你想象的要简单一点。省略第二个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");
}
}
我猜你最好的办法是将这两个或多个方法调用组合在你的支持 bean 中的一个方便方法中。
这样,您还可以确保以一致的顺序调用它们:
public void combinedMethod() {
callBeanMethodA();
callBeanMethodB();
}
然后只需从您的侦听器调用单个便捷方法:
<b:navLink ... onclick="ajax:beanName.combinedMethod" />
这种方法的其他优点是更好的可读性、可重用性和可维护性,因为您集中定义了组合逻辑。