(A14)Tapestry Core :Persistent Page Data

本文翻译出处 http://tapestry.apache.org/tapestry5/tapestry-core/guide/persist.html

本人翻译目的是用来学习Tapestry5的,共享出来希望大家批评指正。计划持续翻译。

chinajavawolf

持久化的页面数据
大多数在 Tapestry 中的实例在每次请求最后都被自动清除。
这是重要的,因为这关系到 Tapestry 页面如何被池化和共享,随着时间的推移,被很多用户使用。
然而,你经常需要在页面里存储一些持久化数据,以便在下一个请求中访问。
使用 Persist annotation. 来完成。
这个标注应用于私有的实例属性。
 @Persist
 private int _value;
被标注的字段域将在请求之间存储他们的状态。一般来说,这意味着这个值被存储在 session 内。
无论何时你改变了持久化的字段域,他的值都被存储。
在稍后的请求里,这个持久化字段域的值从存储库中被重载。
持久化策略
每个字段域的值是有策略的在请求间存储的。
目前,只有默认值,“ session ”被支持。其他的实现,在客户端存储值,很快也会支持。
  •   Session 策略
Session 策略在 session 中存储字段域的变化; session 必须被创建
使用是一个相称的长 session 属性名;这个名字组合了页面名,嵌套的组件 id ,字段域的名。
  •   flash 策略
flash 策略也在 session 中存储信息,但不会很久。值被存储在 session 中,当他们被第一次用来恢复页面状态时被从 session 中删除。
flash 策略是常用来存储值给用户显示一次的临时数据。
持久化查询
Persist 标注的默认值是个空值时,那么当前的策略被明确使用一个组件层次查询。
对于每个组件,元数据( meta-data )属性 tapestry.persistence-strategy 被检查。这可以用 Meta 标注指定。
如果值非空,那么策略被使用。这允许一个组件可以控制使用持久策略在任何子组件中(没明确使用一个不同的策略)。
在一些时候,如果没有组件提供元数据。那么最后默认是使用 session
默认值
对于其他的字段域,默认值可以被指定在内部或者在构造器内。
这个值被保留然后用来在每个请求的最后重置字段域的值,在这个页面被返回给页面池之前。
处理 NULL 值可是一个需要慎重对待的事 , 这是局限于基本的 Servlet Api 改变一个持久字段域的值为 NULL ,从 session 中删除字段的属性 . 在稍后的请求 , 该字段域的值将重置为它的默认值 . 因为通常是 NULL , 这不是一个问题 ... 它只有一个问题 , 如果一个字段域有一个非 null 默认值 , 可能会被改为 Null.
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值