Jsf rich:modalPanel在隐藏时重新加载页面
我有一个使用richfaces的JSF页面,其中有几个帮助按钮,如下所示:Jsf rich:modalPanel在隐藏时重新加载页面,jsf,richfaces,modal-dialog,Jsf,Richfaces,Modal Dialog,我有一个使用richfaces的JSF页面,其中有几个帮助按钮,如下所示: <rich:componentControl for="panelHelp" event="oncomplete" operation="show" /> 该小组称为: <rich:modalPanel id="panelHelp" minHeight="250" minWidth="500" keepVisualState="true" resizeable="true" moveabl
<rich:componentControl for="panelHelp" event="oncomplete" operation="show" />
该小组称为:
<rich:modalPanel id="panelHelp" minHeight="250" minWidth="500"
keepVisualState="true" resizeable="true" moveable="true">
<f:facet name="header">
<h:outputText value="Help" />
</f:facet>
<f:facet name="controls">
<h:commandLink value="">
<h:graphicImage value="/close2.png" title="Close" />
<rich:componentControl for="panelHelp" event="onclick" operation="hide" />
</h:commandLink>
</f:facet>
<h:panelGrid columns="1" width="100%">
<h:outputText escape="false" id="txtHelp"
value="#{msgHelp}" style="width: 100%; height: 190px" />
</h:panelGrid>
</rich:modalPanel>
但是,每当我按下按钮关闭面板时,它都会重新加载整个页面,而不是简单地隐藏面板
我做错了什么,还是有更好的方法
我使用的是richfaces 3.3.3版,它正在重新加载整个页面,因为您使用了
,这将触发整个JSF请求处理生命周期。要获得所需的结果,不需要命令链接组件。您真正需要的是:
<f:facet name="controls">
<h:graphicImage id="closeButton" value="/close2.png" title="Close" />
<rich:componentControl attachTo="closeButton" for="panelHelp" event="onclick" operation="hide" />
</f:facet>
我们在这里所做的是在点击图像时触发
;不需要链接。我假设你使用的是RichFaces3.X。(rf4.X已经弃用了attachTo
属性)它正在重新加载整个页面,因为您使用了
,这将触发整个JSF请求处理生命周期。要获得所需的结果,不需要命令链接组件。您真正需要的是:
<f:facet name="controls">
<h:graphicImage id="closeButton" value="/close2.png" title="Close" />
<rich:componentControl attachTo="closeButton" for="panelHelp" event="onclick" operation="hide" />
</f:facet>
我们在这里所做的是在点击图像时触发
;不需要链接。我假设你使用的是RichFaces3.X。(RF 4.X已经弃用了attachTo
属性)上述答案在Richfaces 3.X中适用,如果您使用的是Richfaces 4.X,那么给定的代码也适用
<f:facet name="controls">
<h:graphicImage value="/close2.png" >
<rich:componentControl target="closeButton" operation="hide" event="click" />
</h:graphicImage>
</f:facet>
以上答案将在Richfaces 3.x中运行,如果您使用的是Richfaces 4.x,那么给定的代码将运行
<f:facet name="controls">
<h:graphicImage value="/close2.png" >
<rich:componentControl target="closeButton" operation="hide" event="click" />
</h:graphicImage>
</f:facet>
将disableDefault=“true”
属性添加到您的rich:componentControl
以禁用单击链接的默认行为。添加disableDefault=“true”
属性添加到您的rich:componentControl
以禁用单击时链接的默认行为。使用a4j:commandLink而不是h:commandLink,并提供a4j:support。这应该可以解决问题。使用a4j:commandLink而不是h:commandLink,并提供a4j:support。这应该可以解决问题。我使用的是3.3.3版,我会将信息添加到问题中,因为我不知道该版本与此相关。尽管如此,这还是不起作用,按关闭按钮后页面仍会重新加载。我使用的是3.3.3版本,我会将信息添加到问题中,因为我不知道该版本与此相关。尽管如此,这仍然不起作用,而且在按下关闭按钮时页面仍会重新加载。因为我使用的是3.3.3版,这只会使按钮消失,但尝试一下肯定不会有什么坏处:)因为我使用的是3.3.3版,这只会使按钮消失,但尝试一下肯定没什么坏处:)添加此内容后仍会重新加载。@fcm您确定已将更改正确部署到服务器上吗?例如,kolossus的答案甚至没有链接,所以没有任何东西会导致页面刷新。我很确定我做到了。例如,Haseeb的回答有一定的影响,尽管它没有起作用,因为添加此选项后仍然会重新加载版本不兼容。@fcm是否确实正确地将更改部署到服务器?例如,kolossus的答案甚至没有链接,所以没有任何东西会导致页面刷新。我很确定我做到了。例如,Haseeb的回答有一定的影响,尽管它因为版本不兼容而不起作用