tapestry入门
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
“prop”是其前缀(2)
其中包括私有的属性和公开的getter和setter方法。 getter方法的命名规则是把属性名第一个字母大写然后在 前面加上“get”(如果是布尔型,也可以加“is”), setter方法类似。 在使用“prop”时,并不要求类中真的存在一个叫做 “hello”的成员变量,只需要有相应的getter/setter方法 就行了,正如我们在Hello类中看到的一样。 “prop”是大小写不敏感的,因此即使我们把页面模板 中的表达式写成“prop:HellO”而且把页面类中的getter方 法名写成“gethEllo”也可以。
/schema/beans/springbeans-2.5.xsd"> </beans>
编辑web.xml文件
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "/dtd/web-app_2_3.dtd"> <web-app> <display-name>Spring</display-name> <context-param> <param-name>tapestry.app-package</param-name> <param-value>com.li</param-value> </context-param> <context-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/spring-service.xml</param-value> </context-param> <filter> <filter-name>app</filter-name> <filter-class>org.apache.tapestry5.spring.TapestrySpringFilter</filter-class> </filter> <filter-mapping> <filter-name>app</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> </web-app>
李金峰tapestry简介?tapestry并不是一种单纯的mvc框架它更像mvc框架和模板技术的结合它不仅包含了前端的mvc框架还包含了一种视图层的模板技术使用tapestry完全可以与servletjsp?api分离是一种非常优秀的设计
typestry入门
作者:李金峰
TAPESTRY简介
Tapestry并不是一种单纯的MVC框架,它更像MVC框架和模板 技术的结合,它不仅包含了前端的MVC框架,还包含了一种视 图层的模板技术,使用Tapestry完全可以与Servlet/JSP API分离, 是一种非常优秀的设计。 通过使用Tapestry,开发者完全不需要使用JSP技术,用户只需 要使用Tapestry提供的模板技术即可,Tapestry实现了视图逻辑 和业务逻辑的彻底分离。
工程目录 结构如图:
安装tapestry及spring包
tapestry包从刚 刚下载的tapestry 包中解压拷贝。 把这些包拷贝到 WebContent/WEB -INF/lib目录下 具体情况情况 右图
创建spring-service.xml文件
在WEB-INF下创建此文件,内容如下:
“prop”是其前缀(1)
“prop”表示类中的一个属性。 在一个典型的 JavaBean中,一个名为“hello”的属性的代码如下:
private String hello;
public String getHello { return hello; } public void setHello(String hello) { this.hello = hello; }
直接使用方法名,必须在方法名后加括号,同时方法必 须公开、无参数且返回一个non-void值。使用方法名最大 的好处是可以方便我们获取那些非getter方法的返回值, 比如length();
在页面中添加超链接(1)
创建页面类Person,代码如下:
package com.li.pages; public class Person { public String getMe() { return "lijinfeng"; } }
这里,我们使用了一个PageLink组件。PageLink组件有 “page”参数和style参数。“t:”前缀,这是由根元素的 命名空间声明决定的。 “page”参数是String类型的,而且是必需的,不允许 Null,没有缺省值。 style输出样式,这里指定超链接的颜色为红色。
获取属性的属性或方法
可以获取属性的属性,如
prop:product.productname
可以在表达式中直接使用方法名而不是属性名,如
prop:getProduct() prop:getProduct().getProductName();
属性方法也可以混用,如
prop:product.getProductName()
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="/schema/beans" xmlns:xsi="/2001/XMLSchema-instance" xsi:schemaLocation="/sch ema/beans
如何在eclipse中打开tml文档(2)
点击General下的Editors 下的File Associations, 在右上列表框中增加 “*.tml”,选中 “*.tml”然后在右下 列表框增加“XML Editor”并设为默认编 辑。按OK按钮退出, 以后Eclipse就会用XML 编辑器打开tml文件了。
如何在eclipse中打开tml文档(1)
为了方便编辑tml文件, 我们应该设置Eclipse用 XML编辑器打开tml文 件。 点击Eclipse菜单 【Window】 【Preferences】。点击 General下的Content Types,在右上列表框 中选中Text下的XML, 然后在右下列表框中增 加“*.tml”。
新建Hello.java
packagelic String getHello() { return "Wellcom Tapestry!!"; }
}
新建Hello.tml
在Hello.java下新建此文件,内容如下: <html xmlns:t="/schema/tapestry_5_1_0.xsd"> ${prop:hello} </html>
TAPESTRY开发环境
TAPESTRY安装包下载路径,本人下 载的安装包为:tapestry-bin-5.1.0.5.zip 本人用的是jdk1.6,下载路径为 /javase/downloads/ 本人用的tomcat的版本是tomcat7,下载路径为: 本人用到开发工具是:eclipse-jee-juno-SR1-win32,下载地址: /downloads/ 安装jdk,设置环境变量;安装tomcat,安装myeclipse,这些都很 简单,这里就不再累述了。
新建一个WEB工程
File---New ---Dynamic Web Project 填充 Project name选项 点击Next
添加文件夹
点击Add Folder...,添加 包 com.li.pages 点击Next
WebContent
默认填充 点击Finish
目录结构
页面模板
这里页面模板为Hello.tml,代码如下:
<html xmlns:t="/schema/tapestry_5_1_0.xsd"> ${prop:greeting} </html>
tml扩展名意思为:Tapestry Markup Language 页面模板是一个well formed XML文档,这意味着每 一个标签都必须有结束标签,每个属性都必须放在 引号中。 在页面模板的根元素包含有Tapestry 5.1命名空间声 明:xmlns:t=/schema/tapestry_5_1_0.xsd
完成安装
点击Browse..., 选择安装目录 点击finish,再 点击Finish,完成 安装
把工程添加到tomcat下
选择eclipse编辑 器下的Servers,右 键Tomcat v7.0 server at localhost ---Add and Remove... 选中MyTapestry, 点击Add> 点击Finish
启动tomcat
选择eclipse编辑器下的Servers,右键Tomcat v7.0 server at localhost ---Start启动Tomcat
访问页面
http://localhost:8080/MyTapestry/Hello,回车
页面Java类
一个页面包括一个页面类和一个页面模板类,这里 Hello.java就是页面类。 页面类是纯粹的POJO(Plain Old Java Objects),无须 继承特定的类,也无须实现特定的接口。但是页面类必 须放在特定的包里。web.xml中的代码指定了路径。代 码如下:
创建页面模板Person.tml,代码如下:
<html xmlns:t="/schema/tapestry_5_1_0.xsd"> ${prop:me} </html>
在页面中添加超链接(2)
在Hello.tml中添加代码如下
<html xmlns:t="/schema/tapestry_5_1_0.xsd"> ${prop:hello} <p> <t:pagelink page="Person" style="color: red;">P</t:pagelink> </p> </html>
绑定表达式
${prop:hello}在Tapestry中被称作Expansion。 Expansion以“${”开头,“}”结尾,中间是一个绑 定表达式(Binding Expression)。 “prop:hello”是一个绑定表达式(Binding Expression),其中“prop”是其前缀。
<context-param> <param-name>tapestry.app-package</param-name> <param-value>com.li</param-value> </context-param>
指定包路径
我们把tapestry.app-package参数设置为了 “com.li”,那么页面类就要放在 “com.li.pages”包中. 组件类要放在“ponents”包中。 如果一个类(通常是抽象类)是其它页面/ 组件类的基类,那么应该被放在“com.li.base” 包中
添加tomcat
把下载的tomcat7解压到某目录下,解压。 选择eclipse编辑器下方的Servers选择new server wizard...添加服 务器
选择安装目录
选择Tomcat v7.0 Server
点击Server runtime environment后边的 Add...选择tomcat的安 装目录