本文翻译出处 http://tapestry.apache.org/tapestry5/tapestry-core/guide/appstate.html
本人翻译目的是用来学习Tapestry5的,共享出来希望大家批评指正。计划持续翻译。
chinajavawolf
应用状态
通常有一种情况是,你有少量的数据需要跨越多个页面。也许你会创造一个多页向导, 或者你也许有一个对象,可以追踪使用者的曾经登录标识.
你可以用Application State Object (an ASO)应用状态对象代替。
使用一个ASO对象,值是被自动存储在页面外的,使用一个默认的存储机制,他被存储在session内.
例如:
java 代码
- public class MyPage
- {
- @ApplicationState
- private MyState _myState;
-
- . . .
- }
任何声明了同一类型字段域的组件或页面,不管名字,只要使用了ApplicationState标注的就将共享同样的值。这就么简单。
对于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 代码
- public void contributeApplicationStateManager(MappedConfiguration configuration)
- {
- ApplicationStateCreator creator = new ApplicationStateCreator()
- {
- public MyState create()
- {
- return new MyState(new Date());
- }
- };
-
- configuration.add(MyState.class, new ApplicationStateContribution("session", creator));
- }
这里,我们有一个ASO类型的MyState,并且我们提供了一个创造器给他。我们我们已经创造出一些通用的类型,但并非是必不可少的.
我们的创造器使用预备构造器利用当前的日期时间创造了一个新的MyState实例。
分享到:
- 2007-05-13 10:55
- 浏览 3092
- 评论(4)
- 论坛回复 / 浏览 (4 / 4734)
- 查看更多
相关推荐
### Tapestry 5:构建 Web 应用程序 #### 一、Tapestry 5 概述 Tapestry 5 是一个强大的 Java Web 开发框架,它为开发者提供了高效且简洁的方式去创建复杂的 Web 应用程序。本书《Tapestry 5:构建 Web 应用程序》...
《Tapestry 5:构建Web应用程序》是关于Tapestry 5框架的一本权威指南。Tapestry 5是一个强大的Java Web应用框架,由Apache软件基金会开发并维护,它致力于提供一种更高效、更优雅的方式来构建动态、交互式的Web应用...
### Tapestry开发知识点详解 #### 一、Tapestry简介及其背景 Tapestry是一种用于构建高度可伸缩且易于维护的Web应用程序的Java框架。它最初由Howard Lewis Ship开发,并于2000年发布。Tapestry的设计理念是为了...
"tapestry学习入门资料" Tapestry 是一个开源的基于 servlet 的应用程序框架,它使用组件对象模型来创建动态的、交互的 web 应用。 Tapestry 使得 Java 代码与 HTML 完全分离,利用这个框架开发大型应用变得...
1. **Tapestry Core**: 这是Tapestry框架的基础部分,包含了核心组件、服务容器(Tapestry IoC)和页面生命周期管理。通过源码分析,我们可以理解其如何实现页面组件的渲染、事件处理和依赖注入。 2. **Tapestry ...
### Tapestry字典知识点概述 #### 一、基础知识 (Using Forms) **1.1 page文件和class文件联系** - **概念**: 在Tapestry中,`page`文件指的是页面定义文件,通常为HTML模板;而`class`文件则是Java类文件,用于...
Tapestry是一款强大的Java Web应用程序框架,由Apache软件基金会维护,它强调了组件化、模块化和可重用性,使得开发复杂的Web应用变得更加简单。本文将深入介绍Tapestry 4的相关知识点。 1. **组件化编程**: ...
挂毯React 将React( )与Tapestry( )一起使用。 该库提供了将Tapestry与JSX模板结合... define ( [ 't5/core/dom' , 'react' , 'react-dom' ] , function ( dom , React , ReactDOM ) { var HelloMessage = React
2. **Tapestry Core**:`tapestry-core-5.3.8.jar`是Tapestry框架的核心库,包含了框架的基础组件、服务和API。它提供了页面、组件、事件处理、URL映射等功能,是构建Tapestry应用的基础。 3. **Plastic**:`...
Tapestry是一款强大的Java Web应用程序框架,由Apache软件基金会维护,它提供了一种基于组件的模型来构建动态、数据驱动的Web应用。本教程将帮助初学者了解Tapestry的基本概念,带你逐步入门并掌握其核心组件的使用...
资源名称:深入浅出Tapestry内容简介:本书以循序渐进的方式,从Tapestry框架技术的基本概念入手,讲解Tapestry框架在J2EE Web应用程序中的整体架构实现。使读者在学习如何使用Tapestry框架技术的同时,还能够获得在...
这个压缩包包含了多个以"Tapestry"开头的子文件,如 "tapestry-core", "tapestry-hibernate", "tapestry-ioc", "tapestry-upload", 和 "tapestry-spring",这些都是Tapestry框架的不同模块或插件。这些文件的后缀是...
### Tapestry5:构建Web应用程序 #### 一、Tapestry5概述 Tapestry5是一种先进的、基于Java的Web开发框架,它以其强大的功能、灵活性以及易用性著称。该框架由Howard Lewis Ship创建,并由Apache软件基金会维护。...
Tapestry是一个分布式系统基础设施,专门设计用于实现容错性的广域定位和路由。这个系统由Ben Y. Zhao、John Kubiatowicz和Anthony D. Joseph等人在加州大学伯克利分校的计算机科学部开发,旨在应对无处不在计算的...
《深入理解 Tapestry 4.1.5:项目实例与核心库解析》 Tapestry 是一个基于 Java 的开源Web 应用程序框架,它强调组件化开发,提供了一种强大的方式来构建动态、高性能的Web 应用。在"tapestry-project-4.1.5"这个...
基于库 特征: 无需编写一行 Javascript 即可创建推送应用程序 完全可配置 使用设置传入消息的... xmlns : p = " tapestry:parameter " > <!-- type a chat message in this form --> < form t :
- **tapestry-core**:Tapestry的核心库,包含了框架的主要功能和API。 - **tapestry-test**:测试支持模块,提供了针对Tapestry应用的单元测试和集成测试工具。 - **tapestry-spring**:Tapestry与Spring框架的...
**Tapestry 3 开发指南** Tapestry 3 是一个开源的Java Web应用程序框架,它在20世纪90年代末至21世纪初非常流行,由Apache软件基金会维护。这个框架提供了组件化、事件驱动和声明式编程模型,帮助开发者构建动态、...