浏览 4734 次
该帖已经被评为良好帖
|
|
---|---|
作者 | 正文 |
发表时间:2007-05-13
本文翻译出处 http://tapestry.apache.org/tapestry5/tapestry-core/guide/appstate.html 本人翻译目的是用来学习Tapestry5的,共享出来希望大家批评指正。计划持续翻译。 chinajavawolf 应用状态
通常有一种情况是,你有少量的数据需要跨越多个页面。也许你会创造一个多页向导, 或者你也许有一个对象,可以追踪使用者的曾经登录标识.
你可以用Application State Object (an ASO)应用状态对象代替。
使用一个ASO对象,值是被自动存储在页面外的,使用一个默认的存储机制,他被存储在session内.
例如:
java 代码
对于Tapestry4用户,一个大的变化是在使用ASO对象前你不需要提供任何配置,也不用提供一个逻辑名。Tapestry5 使用类名来识别ASO,因此不需要一个逻辑名。
你第一次访问ASO时,他被自动创建,使用ASO类的默认构造器(公用的,无参的)
分配值给一个ASO字段将存储这个值。分配null值给ASO字段将删除ASO(正读的字段随后将强迫一个新的ASO实例被创建)。
检查Creation
可伸缩的Web应用不用必须创建服务端session.。如果你可以避免产生session,尤其是第一次访问你的web应用时,你将能控制更大量的用户。因此如果你能够避免创建ASO,你应该这么做
但是如何去避免产生他呢?仅是检查 ("_myState != null")也将强迫ASO的产物存进session内。
创造另一个字段来代替它。
private boolean _myStateExists;
这个同伴字段被用来看ASO是否已经存在。他没有被标注。他通过名称查找("Exists”被附加在存储ASO字段域名后)。他必须是boolean类型并且必须是私有的实例变量。
持久化策略
每个ASO依照持久化策略被管理。默认的持久化策略是”session”。在session中存储ASOs。Session必须被创建。
配置ASOs
通常,如果你需要从默认的持久化策略改变它你将配置一个。当前只有一个构建于策略内,但是更多的在将来就会提供了。
你将配置一个ASO使你可以控制它要如何被实例化. 当它被首次创建或实例化,你可能需要注入一些值给ASO。在这第二种情况下,你可以提供一个ApplicationStateCreator对象,他将被召唤创建ASO,这是必需的. 当你想要声明你的ASO时有个技巧是接口要优于类:你需要提供一个创造器类实现这个接口。
在你的应用模块里用tapestry.ApplicationStateManager去配制一个ASO。
java 代码
我们的创造器使用预备构造器利用当前的日期时间创造了一个新的MyState实例。
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2007-05-13
兄弟翻译的真快啊!!
看来我不用翻译了!!多谢!!!! |
|
返回顶楼 | |
发表时间:2007-05-14
楼主好人,深表感谢
|
|
返回顶楼 | |
发表时间:2007-05-15
谢谢大家的支持,时间有限,工作在身,翻译难免出现质量问题,不对的地方希望大家指出,共同进步,我会尽快翻译全部,希望能有更多的通过这份资料加入到Tapestry的阵营中.
|
|
返回顶楼 | |
发表时间:2007-06-15
感谢chinajavawolf
|
|
返回顶楼 | |