It there an easy way to invoke a JavaScript action before and after the invocation of an <f:ajax listener>
, e.g. I'd like to invoke window.alert("pre")
before and window.alert("post")
after onChange
is invoked in the backing bean ACtrl
:
<h:form>
<h:inputText id="anId" value="#{cityCtrl.dbHost}">
<f:ajax event="change" listener="#{aCtrl.onChange}" execute="@all"/>
</h:inputText>
</h:form>
@ManagedBean
public class ACtrlimplements Serializable {
public void onChange(AjaxBehaviorEvent event) {
System.out.println("something changed");
}
}
Adding multiple f:ajax
elements doesn't seem to work (maybe it should?!), e.g. in
<h:form>
<h:inputText id="anId" value="#{cityCtrl.dbHost}">
<f:ajax event="change" listener="#{aCtrl.toggle}" execute="@all"/>
<f:ajax event="change" listener="#{aCtrl.onChange}" execute="@all"/>
<f:ajax event="change" listener="#{aCtrl.toggle}" execute="@all"/>
</h:inputText>
</h:form>
@ManagedBean
public class ACtrlimplements Serializable {
public void onChange(AjaxBehaviorEvent event) {
System.out.println("something changed");
}
public void toggle(AjaxBehaviorEvent event) {
System.out.println("blah");
}
}
only ACtrl.onChange
is invoked.
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…