现在的位置: 首页 > 综合 > 正文

Tapestry 5 Training Course 中文学习笔记三

2012年06月09日 ⁄ 综合 ⁄ 共 2160字 ⁄ 字号 评论关闭

Tapestry5 基本结构
 概论
 处理请求
 方法论
 基本组件
 Form管理
 其他组件
概论
定义一个模板
 Tapestry5模板都遵守XML文档语法
 如果使用特殊字符(比如 )必须使用一下(X)HTML DOCTYPES
 <!DOCTYPE html PUBLIC"-//W3C//DTD XHTML 1.0 
      Strict//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-
      strict.dtd">

      <!DOCTYPE html PUBLIC"-//W3C//DTD XHTML 1.0 
      Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-
      transitional.dtd">

      <!DOCTYPE HTML PUBLIC"-//W3C//DTD HTML 
      4.01//EN""http://www.w3.org/TR/html4/strict.dtd">

      <!DOCTYPE HTML PUBLIC"-//W3C//DTD HTML 4.01 
      Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"> 

使用一下方式进行资源绑定


 组件使用默认资源包来找到message
 他们也能通过包含页面目录信息找到message(Labels Error Message)
 通过《MyPage.java》关联到资源文件。在相同的目录下放置MyPage.properties
 资源目录信息必须在 classpath目录下
 有一个全局默认的资源文件 WEB-INF/AppName.properties
使用${message:key}的方式来访问资源文件目录(在*。Tml文件中使用)《Key》是关联到资源文件的关键。
使用Tapestry5组件必须使用Tapestry5的命名空间
<html xmlns:t="http://tapestry.apache.org/schema/tapestry_5_0_0.xsd">

         <head>

           <title>Hello World Page</title>

         </head>

         <body>

           <h1>Hello World</h1>

         </body>

       </html>  
 
可以自定义模板的编码方式,明确编码方式必须是模板文件的第一行(甚至在DOCTYPE之前),否则编译器将会报错,代码如下:
<?xml version="1.0"encoding="ISO-8859-1"?>

      <html xmlns:t="http://tapestry.apache.org/schema/tapestry_5_0_0.xsd">

      …

      </html>  

 

模板和静态文件

通过 ${asset:<filepath>}在模板中使用静态资源(图片)tapestry5负责检查文件是否存在,为客户端建立相应的URL
 ${asset:<filepath>}中 filepath是关键,用 “context:”前缀,如果图片存储在应用程序的文档目录,用“classpath:”前缀,如果图片存储在应用程序的classpath路径下。建议优先使用 “context:”前缀

自定义组件的外观

 应用css,tapestry5使用css定义组件的外观,默认使用default.css文件,我们可以通过进入自定义的css文件来覆盖默认外观,引入css文件的原理和图片是一样的。
<style type="text/css">@import url(${asset:context:static/css/style.css});</style>
用户定义的css会优先于系统默认的css文件

模板和java文件的交互

 模板通过类属性来获取数据
 In java文件
              public String getName() {
                   return name;
                 }
                 public void setName(String name){
                   _name = name;
                 }
  In tml 文件
             使用  ${name}来获得值
 对于复杂的对象也同样使用比如:
  << ${monObjet.name} >> 将被翻译成
<< getMonObjet().getName() >> 如果对象有可能是null将用“?”标注避免发生exception,写法如下:
<< ${monObjet?.name} >> 如果对象是null则返回空字符串

调用一个tapestry页面—URL

 Tapestry管理着自己的URL格式
 增加了URL的可读性
 是URL参考简单化
 允许URL 收藏

呈现(Rendering)类型请求:

 
动作(Action)类型请求

 
完成于2008年10月5日星期日 16:50:33

抱歉!评论已关闭.