`
seawenzhu
  • 浏览: 15734 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
最近访客 更多访客>>
社区版块
存档分类
最新评论

【ADF】AutoSubmit、PartialSubmit、PartialTriggers 区别与联系

阅读更多

Web2.0应用的两大特点就是异步请求响应和局部页面刷新。
比如:一个天气预报页面内容包括:国家下拉列表、省下拉列表、城市下拉列表,以及选择城市的最近三天天气情况。
当我们选择国家后,省的下拉列表应该自动被刷新(页面其它地方不刷新);选择省后,城市的下拉列表应该自动被刷新(页面其它地方不刷新);选择不同的城市时,最近三天天气情况应该自动刷新(页面其它地方不刷新)。

总之,我们希望页面能够局部、动态地刷新,请求发送后不必等待响应就能马上做其它事情,而响应回来后,页面相关组件会得到通知,然后自动更新。
AutoSubmit、PartialSubmit、PartialTriggers这三个参数的主要作用就是完成异步请求响应和局部页面刷新。下面逐一说明。

1. autoSubmit 只在输入组件上才有的一个属性。例如:
< af:inputText id="productpriceIT" label="Price" autoSubmit="true" value="#{advertisement.price}" >

当设置为true后,改变该组件的值后(焦点离开后),该组件的值(注意,不是整个form)将被提交到服务器,即进入【转换、验证、更新模型、重新呈现】的各个生命周期阶段(注意先后次序)。
表单中的其它组件不受任何影响,表单也并未提交,只是该组件被异步地提交了。这意味着,即使表单中还有其它必填项,也不会提示“该项不能为空”,因为没有触发到这些必填项。
如果在Manage Bean中更新了该组件的值,必须要刷新该组件才能显示新值,即进入【重新呈现】阶段。刷新该组件有两种方法:
(1)在页面中设置autoSubmit + partialTriggers 刷新(这里指向自己)
< af:inputText id="productpriceIT" label="Price" autoSubmit="true" value="#{advertisement.price}" partialTriggers="productpriceIT">
(2)在Manage Bean 中用代码刷新
AdfFacesContext.getCurrentInstance().addPartialTarget(this.productpriceIT);

2. partialSubmit 只在命令组件上才有的一个属性。例如:
< af:commandLink id="showImageCL" text="#{areaAndCategoryProvider.showAreaImage?'Hide image':'Show image'}" actionListener="#{areaAndCategoryProvider.toggleImage}" partialSubmit="true" partialTriggers="showImageCL" />

默认情况下,单击命令链接或按钮将导致表单提交或页面导航,整个页面将被刷新和重载,其页面效果是页面好像抖动了一下,用户感受稍差一些。
这时,我们可以使用partialSubmit + partialTriggers,来刷新某个组件,其页面效果是只会刷新组件,而不会刷新整个页面。
当然,表单还是会被提交,如果表单中有必填项,将会验证出错,这一点和没有设置partialSubmit=true的按钮或链接一样,二者区别是:设置了partialSubmit=true的按钮或链接界面效果不会抖动,同时点击后会启动 ppr 请求,如果设置了partialTriggers 的话。

与autoSubmit的区别是,后者仅处理更改的组件本身以及在其 partialTriggers 属性中包含引用的所有组件,不会触发表单中的必填项的验证,除非这些必填项的partialTriggers 指向设置了autoSubmit=true的组件。

值得注意的是,CommandToolBarButton 默认partialSubmit =true,所以如果你需要刷新某个组件,必须设置partialTriggers,否则页面不会被刷新。
而CommandButton 默认partialSubmit =false,默认会刷新整个页面。

 

分享到:
评论

相关推荐

    ADF4351配置程序.zip_ADF4351_ADF4351程式_adf4350配置_adf4351 程序_adf4351配置

    这个程序可能包含了初始化ADF4351的函数,通过串行接口或SPI(串行外围接口)与微控制器STC15L104E通信,将配置信息写入ADF4351的寄存器。同时,可能会有频率扫描的实现,这在无线通信系统中用于搜索可用频道或检测...

    ADF检验MATLAB程序.zip_ADF单位根检验_ADF检测_MATLAB adf_adftest matlab_adf检验

    标题中的“ADF检验MATLAB程序.zip”指的是一个包含MATLAB代码的压缩文件,用于执行Augmented Dickey-Fuller(ADF)单位根检验。ADF检验是统计学中一种常用的方法,用于判断时间序列数据是否具有单位根,即数据是否...

    宽带PLL ADF41513(1)_ADF_acceptwcc_adf4360_ADF41513_ADf4360-7_

    标题中的“宽带PLL ADF41513(1)_ADF_acceptwcc_adf4360_ADF41513_ADf4360-7_”提及了两个关键器件:ADF41513和ADF4360-7。这两个都是高性能的频率合成器,在无线通信、测试设备以及各种信号处理应用中广泛使用。 ...

    ADF4351.rar_ADF4351_ADF4351锁相环例程_adf4351双路输出_adf4351辅助输出

    通过这两个文件,开发者可以理解如何与ADF4351进行通信,设置和控制其工作状态,以实现所需频率的生成。 **应用示例** 在无线通信系统中,ADF4351可以作为本地振荡器,提供载波信号。例如,在基站中,它可能用于...

    adf4159.rar_FMCW_adf4159

    标题中的“adf4159.rar_FMCW_adf4159”表明这是一个与ADF4159芯片相关的资源包,重点在于FMCW(Frequency Modulated Continuous Wave)技术的应用。FMCW雷达是一种利用连续波频率调制来测量目标距离、速度和角度的...

    ADF4001/ADF4002的驱动代码(基于正点原子MINISTM32)

    2. **GPIO接口配置**:由于ADF4001/ADF4002与MCU之间的通信通常通过GPIO口进行,因此需要正确配置GPIO引脚为SPI或I²C通信模式,确保数据传输的正确性。 3. **SPI/I²C通信协议**:选择合适的通信协议(如SPI或I²C...

    电子设计大赛——ADF4002分频器stm32F1/F4程序

    在这个电子设计大赛项目中,ADF4002与STM32F1/F4的结合意味着开发者已经编写了一段代码,能够通过微控制器控制ADF4002的配置,从而实现所需频率的精确生成。这可能涉及到以下几个关键知识点: 1. **STM32编程**:...

    verilog配置ADF4355

    在Verilog中,配置ADF4355通常涉及到创建一个自定义的模块,该模块与ADF4355的控制接口相连。这个模块负责生成控制字并将其发送到ADF4355的控制引脚。文件"ADF4355_config.v"很可能就是这样一个模块,它包含了初始化...

    ADF4351/4350寄存器计算软件

    **ADF4351/4350寄存器计算软件详解** 在现代无线通信系统中,频率合成器是至关重要的组成部分,而ADF4351/4350则是ADI公司推出的一系列高性能、高精度的射频(RF)频率合成器芯片。这些芯片广泛应用于各种无线通信...

    ADF5355 SPI程序

    本教程将深入探讨如何使用STM32微控制器通过SPI协议与ADF5355频率合成器进行通信。 **ADF5355简介** ADF5355是一款高性能的频率合成器,由Analog Devices公司生产,可提供广泛的频率范围和灵活的配置选项。它集成...

    adf4351的驱动代码、中文数据手册、相关论文讲解,adf4350中文手册,C,C++

    驱动代码是与硬件设备交互的软件,它允许上层应用程序或操作系统控制ADF4351的功能。在C或C++语言中编写驱动代码,开发者可以精确地设置ADF4351的参数,如输出频率、参考频率、分频比等。驱动通常包括初始化、配置、...

    ADF41513 数据手册.PDF

    ADF41513 数据手册 ADF41513 是一款超低噪频率合成器,可以在无线接收器和发射器的上转换和下转换部分实现高达 26.5 GHz 的局部振荡器(LO)。该器件采用高性能硅锗(SiGe)双极性互补金属氧化物半导体(BiCMOS)...

    ADF4351驱动程序

    在ADF4351驱动程序中,MSPP430单片机作为主控单元,负责处理与ADF4351的通信,设置其寄存器,以实现所需的频率输出。MSP430以其高效能、低功耗和丰富的外设接口著称,非常适合在需要精确控制和节省能源的应用中使用...

    adf检验_ADF检验_

    ADF检验通常通过计算统计量(ADF统计量)并与临界值进行比较来完成。如果ADF统计量小于临界值,那么拒绝零假设,认为序列是平稳的;反之,如果ADF统计量大于临界值,我们接受零假设,认为序列是非平稳的。 **R语言...

    STM32 ADF4351

    STM32与ADF4351结合使用,可以实现频率的精确控制和调节。STM32通过其强大的处理能力来配置和控制ADF4351的寄存器,从而产生所需的工作频率。锁相环是这种系统的核心部分,它能够锁定到外部参考信号,使输出频率与...

    adf4351配置模板及配置软件

    在FPGA的设计中,需要编写适当的硬件描述语言(如VHDL或Verilog)代码,定义与ADF4351的接口,并实现相应的逻辑控制。 总的来说,这个压缩包提供的资源对于使用ADF4351进行射频频率合成至关重要。配置软件简化了...

    adf4350寄存器配置软件

    2. 软件通常需要与特定版本的adf4350芯片兼容,使用前应确认软件版本与芯片版本匹配。 3. 在实际应用中,可能需要对电源、滤波器和输出匹配网络进行优化,以获得最佳性能。 总的来说,adf4350寄存器配置软件是实现...

    ADF4351模块资料-V1.0

    本资料包提供的驱动代码能帮助开发者快速实现ADF4351与STM32的接口,确保正确控制和配置ADF4351的各项参数,如参考频率、输出频率等。 **正点原子开发板兼容性** 正点原子是一家知名的嵌入式开发工具提供商,其...

    adf文件转TIFF文件

    本话题主要涉及"adf文件转TIFF文件",这是一种将特定的数据格式转换为广泛使用的图像格式的过程。下面我们将深入探讨ADF(Arc/Info Binary Grid)文件和TIFF(Tagged Image File Format)文件,以及如何进行这种转换...

Global site tag (gtag.js) - Google Analytics