Vikings

Tapestry 4.0 beta 新特性4-7

Tapestry4新特性(四)-源代码标注的异常处理
Tapestry本来提供的debug功能就十分强大,4.0版本中提供了更加详细的报错机制,可以显示错误的代码,并在报错的地方加亮标注,具体截图请看附件(谁能告诉我怎么将多余的照片删除呀)
x1pc_jqddVOWRleOL7C8xpqaKS3AGUAvBT1MIRFANda_NKbU4VLeU4oBwzLDK28sn7jVevA1K85S_hQ00Oz6G95NKXye0F245JuqXGvav5vixzNs9HU6A4cW4wlt3uPg1dt.jpg


Tapestry4新特性(五)-Friendly URLs
Tapestry4.0以前版本中的URL一直被人所诟病,当然现在已经有很多的解决方
案,4.0版本中已经对此做了改进,
因为现在的版本需要通过hivemind来配置,所以需要设置hivemind.xml中的一些属
性,具体配置如下:
<?xml version="1.0"?> 
<module id="tapestry4" version="1.1.0">
 <contribution configuration-id="tapestry.url.ServiceEncoders">
  <page-service-encoder id="page" extension="html" service="page"/>
  <direct-service-encoder id="direct" stateless-extension="direct"
   stateful-extension="sdirect"/>
  <asset-encoder id="asset" path="/assets/"/>
  <extension-encoder id="extension" extension="svc" after="*"/>
 </contribution>
</module>

同时web.xml中加入映射:
<servlet>
<servlet-name>tapestry4</servlet-name>
<servlet-class> org.apache.tapestry.ApplicationServlet</servlet-class>
<load-on-startup>0</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>tapestry4</servlet-name>
<url-pattern>*.html</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>tapestry4</servlet-name>
<url-pattern>*.direct</url-pattern>
</servlet-mapping>

<servlet-mapping>
<servlet-name>tapestry4</servlet-name>
<url-pattern>*.sdirect</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>tapestry4</servlet-name>
<url-pattern>/assets/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>tapestry4</servlet-name>
<url-pattern>*.svc</url-pattern>
</servlet-mapping>
如果希望首页的调用不是通过/app来映射,可以在web.xml中更改redirect:
<filter-name>redirect</filter-name>
<filter-class>org.apache.tapestry.RedirectFilter</filter-class>
<init-param>
<param-name>redirect-path</param-name>
<param-value>/Home.html</param-value>
</init-param>
</filter>
这样键入http://localhost:8080/tapestry4,系统导航到http://localhost:
8080/tapestry4/Home.html,
添加一个Page页面例如Test.page,在Home.html中加入<a href="#"
jwcid="@PageLink" page="Test">test</a>,
在生成的Home.html中生成的test的链接地址为:http://localhost:
8080/tapestry4/Test.html

Tapestry4新特性(六)-自动定位页面类文件

关于此特性的介绍请参考:http://jakarta.apache.org/tapestry/current/UsersGuide/page-class.html 说明:
通俗点说就是您可以不定义.page文件或者定义的.page文件中不指定class 属性,而让服务器自动根据.html文件的路径来寻找对应的类文件。 配置:
在.application的定义文件中添加: 这样如果在文档根目录下有个Home.html文件,你就可以将Home.java放到 org.edynasty.pages(实际开发中配置为您自己的包名)包中,tapestry自动根据 Home.hmtl构造org.edynasty.pages.Home来定位页面的类文件,当然您也可以在WEB -INF目录下放一个Home.page,不需要定义class属性,tapestry自动按照上边的原 理定位。 效果:
这样您可以不需要维护.page中的class属性,直接根据.html文件来写对应 的类文件。而且可以根据业务逻辑来定义目录结构,例如将 org.edynasty.pages.user定义为user相关的类,.html也就可以放到user目录下 边,目录结构如下: user/ListUsers.html user/EditUser.html course/ListCourses.html course/EditCourses.html Home.html


Tapestry4新特性(七)-Application和Session范围对象的使用
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,分别定义之后,可以在需要存取时分别创建。

posted on 2005-11-08 18:00 Vikings 阅读(427) 评论(0)  编辑  收藏 所属分类: frame-work


只有注册用户登录后才能发表评论。


网站导航: