Jsf 在ajax方法上发生EXCEPTION时,如何显示任何特定消息或excute javascript错误?

Jsf 在ajax方法上发生EXCEPTION时,如何显示任何特定消息或excute javascript错误?,jsf,primefaces,Jsf,Primefaces,嗨,我有一个commandButton,它调用java方法ajax。我想在托管bean中发生错误时显示错误消息或执行任何特定的javascrpt方法调用(即NullPointerException) 我看过primefaces的用户指南,其中commandButton具有onerror属性。我不确定它什么时候被叫来 我的代码是这样的 <p:commandButton action="#{myBean.myMethod}" onsuccess="alert('success');" oner

嗨,我有一个commandButton,它调用java方法ajax。我想在托管bean中发生错误时显示错误消息或执行任何特定的javascrpt方法调用(即NullPointerException)

我看过primefaces的用户指南,其中commandButton具有onerror属性。我不确定它什么时候被叫来

我的代码是这样的

<p:commandButton action="#{myBean.myMethod}" onsuccess="alert('success');" onerror="myJavaScriptMethod();"/>

<script>
   function myJavaScriptMethod(){
        alert('Exception occured in managed bean');
   }
</script>

我想在客户端调用“myJavaScriptMethod”。

更好的解决方案是从方法
myMethod()
调用脚本。那应该是

public void myMethod(){
      try {
          // your code goes here
      } catch(Exception e) {
          RequestContext.getCurrentInstance().execute("your script");
      }
}

感谢您的ans。我想从客户端调用它,这样我就可以将java代码与xhtml代码分开。jsf.ajax.addOnError(handleError);var handleError=函数handleError(data){}我不知道如何使用它。我尝试使用您的代码,如-RequestContext.getCurrentInstance().execute(“alert('My method executed')”)。这对我不起作用:(你确定执行达到了捕获块吗?
public void myMethod(){
      try {
          // your code goes here
      } catch(Exception e) {
          RequestContext.getCurrentInstance().execute("your script");
      }
}