龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > JAVA开发 >

Tapestry 配置 框架 framework

时间:2009-12-23 15:42来源:未知 作者:admin 点击:
分享到:
你好,Tapestry 3.0 mechiland, Jul 2003 -------------------------------------------------------------------------------- 本文主要介绍Tapestry3.0环境下一个简单用例Tapestry的配置方法,旨在帮助开发者熟悉3.0环境。

  

   你好,Tapestry 3.0
  mechiland, Jul 2003
  --------------------------------------------------------------------------------

  本文主要介绍Tapestry3.0环境下一个简单用例Tapestry的配置方法,旨在帮助开发者熟悉3.0环境。由于Tapestry官方(http://jakarta.apache.org/tapestry/)提供的Tutorial文档很多是基于2.x的,这在极大程度上提高了学习的难度。关于Tapestry2.x的介绍以及Tapestry的框架,请参看第7期《程序员》杂志透明的一篇文章,这里不再多说。

  2.x到3.0的变化我没有花太多的时间去研究――究竟接触的时间有限,刚把概念弄明白,3.0就出来了,package的名字都变了,dtd也变了,一些配置的方法也不太一样了,所以本篇文章主要讨论3.0,对于2.x和3.0中区别的地方,尽量不进行比较;假如在文中比较之处有错,还请多多指教。

  1 开发环境
  Tomcat5.0, Win2000Server, Tapestry 3.0b2
  开发工具:Editplus2.11 :)(项目小,没有必要用航母了)

  2 让我们开始吧!
  Ok, 让我们开始这个“你好,Tapestry3.0”吧!

  首先,建立一个目录用来保存你的工程,假定x: apestryhello(以后以$home代替);并最后建立如下文件结构:
  -WEB-INF
  --classes
  --lib

  在$home根目录下放入一个Home.Html,代码如下所示:

  
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
  <html>
  <head>
  <title>Hello, Tapestry!</title>
  </head>

  <body>
  你好,<b>Tapestry 3.0!</b>
  </body>
  </html>
   
  代码清单1:Home.html
  这就是我们的主页面了。

  
  然后在$home/WEB-INF/下面放入一个web.XML,出人意料的,这个web.xml竟然如此简单,而且与Tapestry2.x的文档中提供的大不一样哦~~

  
  <?xml version="1.0"?>
  <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
  "http://Java.sun.com/dtd/web-app_2_3.dtd">
  <web-app>
  <display-name>Tapestry Tutorial</display-name>
  <!--Redirect it to the servlet mapping address /h-->
  <filter>
  <filter-name>redirect</filter-name>
  <filter-class>org.apache.tapestry.RedirectFilter</filter-class>
  <init-param>
  <param-name>redirect-path</param-name>
  <param-value>/h</param-value>
  </init-param>
  </filter>
  <filter-mapping>
  <filter-name>redirect</filter-name>
  <url-pattern>/</url-pattern>
  </filter-mapping>
  <servlet>
  <servlet-name>hello</servlet-name>
  <servlet-class>org.apache.tapestry.ApplicationServlet</servlet-class>
  <load-on-startup>0</load-on-startup>
  </servlet>

  <servlet-mapping>
  <servlet-name>hello</servlet-name>
  <url-pattern>/h</url-pattern>
  </servlet-mapping>

  <session-config>
  <session-timeout>15</session-timeout>
  </session-config>

  <welcome-file-list>
  <welcome-file>index.html</welcome-file>
  </welcome-file-list>
  </web-app>
   
  代码示例2:web.xml
  稍微解释一下:名为redirect的filter是用来转向的,注重,那个init-param用来控制转向到哪里去,假如没有或者设置不正确,就会转到默认的地方(/app)。按照我们配置的情况,应该是当访问/时转到/h的servlet去。当然,这个设置是当下面的<welcome-file-list>无效时才起作用。

  读过旧版tutorial的人就会希奇,那个org.apache.tapestry.application-specification到哪里去了?在默认情况下,Tapestry会在/WEB-INF下寻找跟ApplicationServlet名称相同的.application(如本例中hello),另外,application的配置已经非常简单,对于我们Hello, Tapestry这样简单的用例,不用.application也是可以的。不过为了形式的完整,我们将它加上:

  将hello.application文件放到$home/WEB-INF下面(与web.xml)放在一起

  <?xml version="1.0"?>
  
   <!DOCTYPE application PUBLIC
  "-//Apache Software Foundation//Tapestry Specification 3.0//EN"
  "http://jakarta.apache.org/tapestry/dtd/Tapestry_3_0.dtd">
  <application name="Hello Tapestry 3.0">
  </application> 

  代码示例3:hello.application

  现在,就是我们的Home.page文件:

  <?xml version="1.0"?>
  <!DOCTYPE page-specification PUBLIC
  "-//Apache Software Foundation//Tapestry Specification 3.0//EN"
  "http://jakarta.apache.org/tapestry/dtd/Tapestry_3_0.dtd">
  <page-specification class="org.apache.tapestry.html.BasePage"/>
   
  代码示例4:Home.page
  是不是不知道将这个文件放到哪里了?放到$home/WEB-INF下面就行了!

  OK, 最后一步,将Tapestry所带的workbench示例下/WEB-INF/lib中所有的jar复制到$home/WEB-INF/lib。

  3 部署
  部署方法很简单了,你可以用jar工具将$home目录打成一个war包,或者直接将整个$home目录复制到$Tomcat_Home/webapps下面。不论你采用那种方法,部署成功后,打开浏览器,键入地址:http://localhost:8080/hello, 是不是显示出下面的画面呢?

  4 小结
  在Tapestry3.0中,部署应用程序更加轻易了,本文由于案例较简单,很多步骤都可以忽略(在本例中,hello.application和Home.page都可以忽略不计),但是在复杂的应用中,如Tapestry自带的workbench示例,就不可忽略了。关于Tapestry的其他特性,作者正在研究中。Tapestry是个优秀的开发框架,假如那位有爱好,或者对这篇文章中有什么不正确的地方,欢迎批评指正,Email: mechiland@163.net


  
精彩图集

赞助商链接