这只是一个简单的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>
答案 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" />