Search code examples
xpages

Can I display HTML in Error Messages control?


In my XPages application we are using Bootstrap for theming.

If I look at the alert component:

<div class="alert alert-danger" role="alert"> <strong>WARNING</strong> SYSTEM FAILURE. </div>

I see a element is used.

Now in my XPages application I used something as followed:

FacesContext.getCurrentInstance().addMessage(null, new javax.faces.application.FacesMessage(javax.faces.application.FacesMessage.SEVERITY_ERROR, "<strong>WARNING</strong> SYSTEM FAILURE", ""));

but this is displayed as text:

enter image description here

Is it somehow to make the Error Messages control display HTML?


Solution

  • You can write your own message control like this:

    <xp:panel styleClass="xspMessage"
        rendered="#{javascript:facesContext.getMessages().hasNext()}">
        <xp:repeat id="repeat1" rows="30" var="msg">
            <xp:this.value><![CDATA[#{javascript:var v = new java.util.Vector();
    var itr = facesContext.getMessages()     
    while(itr.hasNext()) {
        var element:javax.faces.application.FacesMessage = itr.next();
        v.add(element.getSummary())
    }
    return v;}]]></xp:this.value>
            <xp:text escape="false" id="computedField1" value="#{msg}"  tagName="div">
            </xp:text>
        </xp:repeat>
    </xp:panel>