Jsf 2 使用menuitem标记中的标记onerror报告jsf中的错误

Jsf 2 使用menuitem标记中的标记onerror报告jsf中的错误,jsf-2,primefaces,Jsf 2,Primefaces,我是jsf新手,希望在下面的xhtml代码中使用标记“onerror”在primefaces(使用JSF2)中引发一个带有错误的对话框 <h:form> <p:growl id="errorgrowl" autoUpdate="true" life="5000" severity="error,fatal"/> .. .. <p:submenu label="${messages.mLinkView}"> <p:menuitem

我是jsf新手,希望在下面的xhtml代码中使用标记“onerror”在primefaces(使用JSF2)中引发一个带有错误的对话框

<h:form>
<p:growl id="errorgrowl"  autoUpdate="true" life="5000" severity="error,fatal"/>
..
..
    <p:submenu label="${messages.mLinkView}">
        <p:menuitem value="${messages.mShowOnMap}" target="_blank" outcome="#{linkViewController.showLinkView(nobListController.csvParser,nobListController.allNobMan)}" update="errorgrowl"/>
        <p:menuitem value="${messages.mShowPhyLinksOnMap}" target="_blank" outcome="#{linkViewController.showPhyLinkView(nobListController.csvParserPhyLinks,nobListController.allNobMan)}" update="errorgrowl" />
    </p:submenu>

..
..
爪哇: 捕获(例外e) { log.error(“prepareNElistPhyLinks()无法计算MPLS Xc链接”+ ((GeneralException的e实例)?((GeneralException)e).原因:e.getMessage()); e、 printStackTrace(); FacesMessage Facesmssg=新的FacesMessage(FacesMessage.SEVERITY_错误,e.getMessage(),e.getMessage()); FacesContext.getCurrentInstance().addMessage(null,facesMsg); FacesContext.getCurrentInstance().validationFailed();
}


非常感谢

您可以通过


谢谢你的意见。我做了你建议的改变。但它不起作用。 ....
<h:form> 
   <p:growl id="errorgrowl"  autoUpdate="true" life="5000" severity="error,fatal"/>
 ...
<h:form> 
try {
    ...
}catch(Exception e) {
  FacesMessage facesMsg = new FacesMessage(FacesMessage.SEVERITY_ERROR, e.getMessage(), e.getMessage());
    FacesContext.getCurrentInstance().addMessage(null, facesMsg);
    // FacesContext.getCurrentInstance().validationFailed(); may need this also
}