ModalPanel在有Ajax刷新请求的时候,一般会关闭,比如验证错误的时候
我自己的解决办法是让ModalPanel的现实与否不与JS有关,完全用conversation中的某个变量想关联,这样当一个ModalPanel显示以后,无论什么Ajax刷新请求都不回让ModalPanel关掉,除非我让他关掉
网上还有两种解决方案,现列举如下。
第一种方法:
<ui:define name="body">
<f:verbatim>
<a href="javascript:Richfaces.showModalPanel('_panel',{left:'auto', top:'auto'})">
Show Modal Panel
</a>
</f:verbatim>
<rich:modalPanel id="_panel">
<f:facet name="header">
<h:outputText value="test"></h:outputText>
</f:facet>
<h:form id="mpform">
<a4j:outputPanel ajaxRendered="true">
<h:messages id="error"></h:messages>
</a4j:outputPanel>
<h:inputText value="#{bean.property}" required="true"></h:inputText>
<a4j:commandLink value="click" oncomplete="windowclose();"
reRender="test" ></a4j:commandLink>
</h:form>
</rich:modalPanel>
<script type="text/javascript">
//<![CDATA[
function windowclose(){
if (document.getElementById('mpform:error')==null){
Richfaces.hideModalPanel('_panel');
};
};
//\]\]\>
</script>
</ui:define>
这种方法的思想是,在关闭ModalPanel的时候判断是否有message在里面,如果没有,就关掉,如果ModalPanel里面有message,就让它继续显示着。
第二种方法:
这种方法的前提是,使用Facelets
在模板里面增加这段代码:
<a4j:outputPanel ajaxRendered="true">
<h:form style="display:none" prependId="false">
<h:inputHidden id="maximumSeverity" value="#{facesContext.maximumSeverity.ordinal}"/>
</h:form>
</a4j:outputPanel>
然后在你需要加ModalPanel的页面增加以下这段JS代码:
function ajaxRequestContainsErrors() {
return document.getElementById("maximumSeverity").value == "2";
}
作用是检查是否包含错误消息
最后在具体的连接或者按钮上增加相应的处理事件:
<a4j:commandButton value="Save" action="#{myController.save}"
oncomplete="if (!ajaxRequestContainsErrors()) Richfaces.hideModalPanel('myModalPanelId');"/>
分享到:
相关推荐
在探讨“RichFaces中的ajax组件实现刷新验证码”的技术细节时,我们首先需要理解RichFaces框架以及AJAX在其中的应用。RichFaces是一个基于JavaServer Faces(JSF)的开源UI组件库,它提供了丰富的用户界面组件,包括...
### RichFaces中的Ajax组件使用指南 ...通过上述介绍,我们不仅对RichFaces中的Ajax组件有了更深入的理解,还掌握了如何配置和使用这些组件来提升Web应用程序的用户体验。希望本文能够为初学者提供一定的指导和支持。
**RichFaces中文开发文档概述** RichFaces是一款基于JavaServer Faces(JSF)技术的开源UI组件...有了中文开发文档,开发者可以更方便地学习和应用这个框架,无论是在新项目开发还是旧项目维护中,都能发挥重要作用。
Seam、JSF、RichFaces 和 Ajax4jsf 是四个重要的Java Web开发框架和技术,它们在构建现代、交互式Web应用程序中发挥着关键作用。让我们深入探讨这些技术及其结合使用时的知识点。 **1. Seam** Seam是一个开源的Java...
在"richfaces-ui-3.2.1.GA"这个版本中,“GA”代表General Availability,意味着这是经过广泛测试和验证的稳定版本,适合生产环境使用。这一版本对3.2.0进行了优化和修复,旨在提高性能和稳定性,同时可能引入了新的...
在这个监听器中,你可以处理文件的保存、验证大小和类型,以及更新进度信息。 6. **分块上传**:如果文件较大,RichFaces支持分块上传,这意味着文件会被分成小块进行上传,每一块的进度都可以通过AJAX反馈给前端,...
关于richfaces的一些比较好的资料,希望大家看了能有收获
**RichFaces组件**:除了基本的JSF组件外,RichFaces框架提供了许多增强型组件,比如数据网格、滑块、日历、对话框等,这些组件具有内置的AJAX支持,可以在不重新加载整个页面的情况下更新部分视图。在`jsf.jsp`和`...
在提供的文件列表中,"QQͼƬ20150429165354.png" 可能是一张图片,可能与JSF或RichFaces的使用示例、教程或者错误排查有关。而"myweb"可能是某个Web项目的文件夹,里面可能包含了使用JSF和RichFaces构建的应用程序...
在本文中,我们将深入探讨 RichFaces 标签的使用,特别是 `rich:componentControl` 和 `rich:modalPanel` 标签,以及 `inputNumberSlider` 和 `PanelBar` 组件。RichFaces 是一个功能丰富的 JavaServer Faces (JSF) ...
在这个商品管理项目中,很可能使用了RichFaces的组件来展示商品列表、处理添加和删除操作,以及在更新商品信息时实现局部刷新。 **AJAX**(Asynchronous JavaScript and XML)是一种创建动态网页的技术,通过在后台...
- **集成JSF生命周期**:RichFaces完全融入JSF的生命周期,支持在Ajax请求中执行动作和值改变侦听器,以及服务器端的验证和转换。 - **Ajax增强现有JSF应用**:框架提供了Core Ajax和UI两个组件库。Core库可将Ajax...
4. **3.3 版本**:作为 GA 版本,3.3 版本的 RichFaces 是一个经过广泛测试和验证的稳定版本,适合在生产环境中使用。此版本可能包括性能优化、新特性以及对旧版本问题的修复。 5. **JAR 文件**:Java 应用程序的可...
RichFaces 是基于 AJAX 的 JSF 组件库,它允许开发者在不离开服务器端的情况下更新页面的部分内容,从而提高用户体验。它不仅包含了一系列的组件,如数据表、树形结构、日历、图表等,还提供了事件处理、皮肤定制...
RichFaces作为一款开源框架,以其强大的Ajax能力、丰富的组件库以及高度可定制的特性,在JavaServer Faces(JSF)环境中独树一帜。本文旨在深入探讨RichFaces的核心功能、组件开发流程以及资源管理和皮肤技术支持,...
它提供的Ajax支持是完全集成到JSF生命周期内的,这意味着在处理Ajax请求时,RichFaces可以触发动作监听器、值更改监听器,执行服务器端验证和转换。 RichFaces主要包含两个组件库:Core Ajax和UI库。Core库允许将...
RichFaces 3.0.0在设计时就考虑了性能,但实际应用中仍需根据项目需求进行调整。这可能包括优化AJAX请求的频率、减少不必要的组件渲染、合理使用缓存等。 **六、社区与文档支持** RichFaces拥有活跃的开发者社区,...
在本文中,我们将重点介绍几个常用的Richfaces标签,并通过实例进行讲解。 #### 二、Richfaces标签介绍 ##### 1. `rich:componentControl`标签 `rich:componentControl`标签用于控制其他组件的行为,例如显示或...