Tapestry4新特性(七)-Application和Session范围对象的使用 TapestryApacheXMLHTML
程序员文章站
2024-02-20 18:22:34
...
Application和Session范围对象的使用
关于此特性的介绍请参考:http://jakarta.apache.org/tapestry/UsersGuide/state.html
说明:
Application和Session范围的概念就不说了,T4以前的版本只可以分别指定一个对象,
以前版本的定义如下:
<property name="org.apache.tapestry.visit-class" value="your.package.Visit"/>
<property name="org.apache.tapestry.global-class" value="your.package.Global"/>,
T4中可以指定任意多的对象,而且默认的visit和global仍然可以使用。
配置:在hivemodule.xml的定义文件中添加:
<contribution configuration-id="tapestry.state.ApplicationObjects">
<state-object name="applicationUser" scope="application">
<create-instance class="org.edynasty.model.User"/>
</state-object>
<state-object name="sessionUser" scope="session">
<create-instance class="org.edynasty.model.User"/>
</state-object>
</contribution>
两个user分别对应Application和Session范围,在需要使用user的page中注入:
<inject property="applicationUser" type="state" object="applicationUser"/>
<inject property="sessionUser" type="state" object="sessionUser"/>,通过
getter和setter方法调用。
效果:怎么说呢,可以不需要在一个visit中定义N多属性,因为Session的创建需要资源,
只要操作一个visit的属性,就需要创建整个visit,分别定义之后,可以在需要存取时分别创建。
关于此特性的介绍请参考:http://jakarta.apache.org/tapestry/UsersGuide/state.html
说明:
Application和Session范围的概念就不说了,T4以前的版本只可以分别指定一个对象,
以前版本的定义如下:
<property name="org.apache.tapestry.visit-class" value="your.package.Visit"/>
<property name="org.apache.tapestry.global-class" value="your.package.Global"/>,
T4中可以指定任意多的对象,而且默认的visit和global仍然可以使用。
配置:在hivemodule.xml的定义文件中添加:
<contribution configuration-id="tapestry.state.ApplicationObjects">
<state-object name="applicationUser" scope="application">
<create-instance class="org.edynasty.model.User"/>
</state-object>
<state-object name="sessionUser" scope="session">
<create-instance class="org.edynasty.model.User"/>
</state-object>
</contribution>
两个user分别对应Application和Session范围,在需要使用user的page中注入:
<inject property="applicationUser" type="state" object="applicationUser"/>
<inject property="sessionUser" type="state" object="sessionUser"/>,通过
getter和setter方法调用。
效果:怎么说呢,可以不需要在一个visit中定义N多属性,因为Session的创建需要资源,
只要操作一个visit的属性,就需要创建整个visit,分别定义之后,可以在需要存取时分别创建。