获取错误消息

M. *_*tzl 2 error-handling xpages

我们使用以下代码在验证文档时添加新的错误消息:

function addFacesMessage( message, component ){
     try {
        if( typeof component === 'string' ){
            component = getComponent( component );
        }

        var clientId = null;
        if( component ){
            clientId = component.getClientId( facesContext );
        }

        facesContext.addMessage( clientId, new javax.faces.application.FacesMessage( message ) );
     } catch(e){ 
        globalScriptErrors.add(e);
        requestScope.put("scriptErrors", globalScriptErrors);
     }
}
Run Code Online (Sandbox Code Playgroud)

如果发生错误,我们会在每个验证例程中调用此函数:

facesContext.addMessage("", 
            new javax.faces.application.FacesMessage("errormessage" );
Run Code Online (Sandbox Code Playgroud)

在我们的XPage中,我们有一个错误消息框,显示当前页面发生的所有错误:

<xp:messages id="messages2" styleClass="lotusMessage lotusWarning"></xp:messages>
Run Code Online (Sandbox Code Playgroud)

现在,消息显示在错误消息框中,但我们如何检查此页面是否有错误?如果错误消息框中没有显示错误,我们希望使用此信息,例如,只需显示一个弹出窗口.但是我们如何获得这些信息呢?

Per*_*ten 6

使用以下内容检查消息:

facesContext.getMessages().hasNext()
Run Code Online (Sandbox Code Playgroud)

如果消息存在则返回true,如果不存在消息则返回false.

您可以使用它来控制像这样的div的渲染:

<xp:div rendered="#{javascript:facesContext.getMessages().hasNext()}">
</xp:div>
Run Code Online (Sandbox Code Playgroud)