0

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

这是我的代码的示例:

<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>
4

1 回答 1

1

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

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

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

<p:commandLink ... />

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

<p:commandLink ... update="@form" />
于 2012-10-24T13:08:27.200 回答