Primefaces lightBox在点击commandLink时关闭

时间:2012-10-24 11:48:20

标签: jsf-2 primefaces

这只是一个简单的Primefaces lightBox我想使用commandLinks。不幸的是,当我点击一个commandLink时它就会关闭。有没有办法让lightBox保持打开状态?

这是我的代码的示例:

<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:p="http://primefaces.org/ui" template="template.xhtml">

<ui:define name="content">
    <p:lightBox>
        <h:outputLink value="#">
            <h:outputText value="open lightbox" />
        </h:outputLink>

        <f:facet name="inline">
            <h:form>
                <h:commandLink>
                        commandLink
                </h:commandLink>
            </h:form>
        </f:facet>
    </p:lightBox>

</ui:define>

</ui:composition>

1 个答案:

答案 0 :(得分:1)

使用ajax(异步)请求而不是同步请求:

<h:commandLink ...>
    <f:ajax ... />
</h:commandLink>

或者当您使用PrimeFaces时,只需使用<p:commandLink>代替(默认情况下它已经使用了ajax):

<p:commandLink ... />

使用ajax,默认情况下不会执行带有响应的新页面替换(基本上“重置”任何内容到默认值)。如果<f:ajax>告诉render属性,您可以在客户端更新组件树的哪些部分,<p:commandLink>update属性更新。例如。如果您只想渲染/更新父表单,请使用@form。 E.g。

<p:commandLink ... update="@form" />