正确使用primefaces的process和update

news/2024/11/14 12:04:46/

process属性作用于服务端,用于指定在表单提交或Ajax请求时,哪些组件需要在JSF的生命周期中被处理。它有以下几个值:

  • @this:表示只处理当前组件。
  • @form:表示处理当前表单内的所有组件。

update属性作用于客户端,用于指定在Ajax请求完成后,HTML DOM树的哪些部分需要被更新以响应表单的提交或组件的变化。它有以下几个值:

  • @this:表示只更新当前组件。
  • @form:表示更新当前表单内的所有组件。
  • 组件ID,表示更新指定ID的HTML元素。

下面讲一个具体的示例。

<h:form id="dialogs"><p:dialog header="计量单位" showEffect="fade" modal="true" widgetVar="manageUnitDialog"closeOnEscape="true"  position="center" styleClass="s-360">               <p:outputPanel id="manage-unit-content"><p:outputPanel rendered="#{not empty unitBacking.current}"><div class="formgrid grid ui-fluid"><div class="col-12 md:col-12 lg:col-12"><div class="field"><p:outputLabel for="name" >单位名称</p:outputLabel><p:inputText id="name" value="#{unitBacking.current.name}" autocomplete="off"/><h:message for="name" class="error"/></div></div></div></p:outputPanel></p:outputPanel><p:hotkey bind="ctrl+s" update="form:messages" action="#{unitBacking.save()}"/><f:facet name="footer"><div class="dialog-header-button-bar"><p:commandButton value="保存" icon="pi pi-save" actionListener="#{unitBacking.save}" process="@form" update="dialogs:manage-unit-content"/><p:commandButton value="取消" icon="pi pi-times" onclick="PF('manageUnitDialog').hide()"styleClass="ui-button-secondary" type="button" /></div></f:facet></p:dialog><p:confirmDialog widgetVar="deleteUnitDialog" showEffect="fade" closeOnEscape="true"message="删除后不可恢复,请谨慎操作……" header="提示" severity="warn">                <p:commandButton value="删除" icon="pi pi-trash"actionListener="#{unitBacking.delete(unitBacking.current.id)}"process="@this"oncomplete="PF('deleteUnitDialog').hide()"styleClass="ui-button-danger"/><p:commandButton value="取消" type="button"  icon="pi pi-times"onclick="PF('deleteUnitDialog').hide()" styleClass="ui-button-secondary"/></p:confirmDialog>
</h:form>

actionListener表示仅在当前页面上操作,不跳转页面;若要跳转页面则使用action。
process=”@form” 表示处理事个表单,用于在修改数据、添加数据等操作。在保存、更新按钮用@form。
update=”dialogs:manage-unit-content” 表示与表单验证结合,若没有此选项则表单验证失效。update的值是面板的ID值。
process=”@this” 表示后台处理,不需要处理整个表单,通常用于删除某条记录、修改某条记录前加载它。在修改按钮删除按钮用@this。


http://www.ppmy.cn/news/1546918.html

相关文章

「QT」几何数据类 之 QVector4D 四维向量类

✨博客主页何曾参静谧的博客&#x1f4cc;文章专栏「QT」QT5程序设计&#x1f4da;全部专栏「VS」Visual Studio「C/C」C/C程序设计「UG/NX」BlockUI集合「Win」Windows程序设计「DSA」数据结构与算法「UG/NX」NX二次开发「QT」QT5程序设计「File」数据文件格式「PK」Parasolid…

【国产操作系统对Qt支持有哪些?】

国产操作系统 鸿蒙操作系统:由华为开发,主要用于智能设备和物联网领域。 深度操作系统:基于Linux的操作系统,适用于个人电脑和服务器。 中标麒麟:由中国电子科技集团公司研发,适用于服务器和桌面环境。 悠然操作系统:面向教育和个人用户的Linux发行版。 红旗Linux:早期…

重构代码之移动字段

移动字段用于将字段从一个类移动到另一个更合适的类中。通常&#xff0c;当某个字段在当前类中的使用很少&#xff0c;或者更多地被其他类依赖时&#xff0c;可以考虑将其移动到更加合适的类中&#xff0c;以提升代码的聚合性和可维护性。 一、适用场景 字段主要为其他类提供…

@ComponentScan:Spring Boot中的自动装配大师

文章目录 1. 什么是ComponentScan注解&#xff1f;2. 为什么需要ComponentScan注解&#xff1f;3. 如何使用ComponentScan注解&#xff1f;4. ComponentScan注解的高级用法5. 注意事项6. 结语推荐阅读文章 在Spring Boot的世界里&#xff0c;自动装配&#xff08;Auto-wiring&a…

如何从头开始构建神经网络?(附教程)

随着流行的深度学习框架的出现&#xff0c;如 TensorFlow、Keras、PyTorch 以及其他类似库&#xff0c;学习神经网络对于新手来说变得更加便捷。虽然这些框架可以让你在几分钟内解决最复杂的计算任务&#xff0c;但它们并不要求你理解背后所有需求的核心概念和直觉。如果你知道…

WIndows搭建NGINX环境

在Windows系统上搭建NGINX的步骤相对简单&#xff0c;以下是基本的步骤&#xff1a; 下载NGINX&#xff1a; 访问NGINX官方网站&#xff08;http://nginx.org/&#xff09;下载最新的稳定版本&#xff0c;或者使用Windows版本&#xff0c;通常是一个名为nginx/Windows-版本号.z…

Rust 语言学习笔记(一)

学了不少编程语言&#xff0c;多数是离不开垃圾回收的&#xff0c;要么像 C 仍然是过于复杂&#xff0c;对于通用&#xff0c;编译型编程语言 Rust 是个不错的选择, Rust 不需要垃圾回收器。Rust 是由 Mozilla 主导开发的&#xff0c;设计准则为 "安全&#xff0c;并发&am…