如何使用Session比较前后字段的值?

      很多人在在开发CQ的时候,可能会遇到需要对某个字段的值改变做前后比较,如状态从已提交转换到已分配,父子控件内增加了新的子流程记录,需要修改对应的记录值等等。

      如何获取到值的前后差异呢?我们要使用动作的初始化(Initialization) HOOK及验证(Validation) HOOK进行校验。

     

      在初始化Hook中,填写如下内容:

      set session = getsession

      session.NameValue("<Session字段名>") = <需要保存的字段值(可以是list值)>

      set session = nothing

 

      那么在验证Hook中,我们可以用以下代码获取到:

      <变量> = session.NameValue("<Session字段名>") 

 

 

     这样就可以完成对这个字段值的未改变前的获取,然后在验证Hook中对当前字段值进行获取,即可进行比较了。

 

     这段代码也可以用来对父子流程中信息传递,如需要将父记录的标题、内容带到对应的子流程中。CQ的父子控件机制并不强大,容易造成孤儿的产生。所以父子控件在创建子流程时候,在父流程未保存前,子流程是与父流程没有任何关联的。父流程信息如何获取呢?

      使用预操作挂钩即可,将NameValue在挂钩操作中进行赋值,然后再子流程的Submit初始化Hook中添加获取这个NameValue的值即可,一般我们使用父流程的ID进行session保存,在子流程中将父流程记录根据ID找到,然后赋值进相应的字段。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值