每个ajax请求上的JSF更新组件

时间:2013-05-17 12:22:14

标签: ajax jsf messages

您好我想将JSF消息呈现为引导警报

<ui:repeat value="#{facesContext.messageList}" var="facesMessage">
    <div class="alert">
        <button type="button" class="close" data-dismiss="alert">&times;</button>
        <strong>Warning!</strong> #{facesMessage.summary}
    </div>
</ui:repeat>

在primefaces中有

<p:messages autoUpdate=true>

表示在每个ajax请求上重新呈现它而不将其显式添加到commandLink的render-attribute

有没有办法用普通的JSF-ajax标签来实现这个目标?

1 个答案:

答案 0 :(得分:2)

您可以在页面加载期间尝试这样的事情:

jsf.ajax.addOnEvent(autoRender);

autoRender中,您将能够触发一种动作以呈现目标组件。例如:

function autoRender() {
    $(":form:autoRenderHiddenButton").click();
}

在按钮中:

<h:commandButton id="autoRenderHiddenButton" 
                 style="display: none">

    <f:ajax render="theComponentIdYouWantToRender"/>
</h:commandButton>

或者您可以使用Omniface's commandScript轻松实现相同的行为:

<o:commandScript name="autoRender" render="theComponentIdYouWantToRender"/>