您的位置:首页 > 其它

开始使用Tapestry

2016-03-04 23:20 453 查看
去年年底进入一家新的公司,公司使用的技术是自己以前没涉及的,现将官方文档阅读翻译记录到blog。

准备开始

使用Tapestry非常简单,许多方式可以开始使用:看一段视频,浏览一组源码,使用Maven创建一个框架App或者通过辅导课程。

观看视频

观看Mark W.Shead的 10分钟简介,来快速了解Tapestry。该视频向您介绍了如何建立一个基于Hibernate和Ajax,具备校验的简单应用,并向您展示Tapestry开发者所享受的快速高效开发经验。

在线案例尝试
通过案例应用您可以在线尝试Tapestry。开始之前,请查看
酒店预订案例 (源码下载

创建你的第一个Tapestry项目
初始化项目的最简单方法:使用
Apache Maven。(安装Maven)Maven 可以使用项目模板来创建Tapestry应用。
当你的Maven初始化以后,执行下面的命令:

mvn archetype:generate -DarchetypeCatalog=http://tapestry.apache.org


Maven 将提示你下载来创建Tapestry 5 快速开始项目并添加版本号(比如5.4.0),同时会询问你组织ID,个人ID和版本号。

如果您想下载一个未发布版本的Tapestry,请使用一个官方提供的URI。

您将看到以下进度内容:

$ mvn archetype:generate -DarchetypeCatalog=https://repository.apache.org/content/repositories/staging
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building Maven Stub Project (No POM) 1
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] >>> maven-archetype-plugin:2.3:generate (default-cli) > generate-sources @ standalone-pom >>>
[INFO]
[INFO] <<< maven-archetype-plugin:2.3:generate (default-cli) < generate-sources @ standalone-pom <<<
[INFO]
[INFO] --- maven-archetype-plugin:2.3:generate (default-cli) @ standalone-pom ---
[INFO] Generating project in Interactive mode
[INFO] No archetype defined. Using maven-archetype-quickstart (org.apache.maven.archetypes:maven-archetype-quickstart:1.0)
Choose archetype:
...
5: https://repository.apache.org/content/repositories/staging -> org.apache.tapestry:quickstart (-)
...
Choose a number or apply filter (format: [groupId:]artifactId, case sensitive contains): 105: 5
Choose org.apache.tapestry:quickstart version:
1: 5.3
2: 5.3.1
3: 5.3.2
4: 5.3.3-rc-1
5: 5.3.3
6: 5.3.4
7: 5.3.5
8: 5.3.6
9: 5.3.7
10: 5.3.8
11: 5.4-beta-3
12: 5.4-beta-6
13: 5.4-beta-22
14: 5.4-beta-26
15: 5.4-beta-27
16: 5.4-beta-28
Choose a number: 16: 16
Define value for property 'groupId': : com.example
Define value for property 'artifactId': : newapp
Define value for property 'version':  1.0-SNAPSHOT: :
Define value for property 'package':  com.example: : com.example.newapp
Confirm properties configuration:
groupId: com.example
artifactId: newapp
version: 1.0-SNAPSHOT
package: com.example.newapp
Y: :
[INFO] ----------------------------------------------------------------------------
[INFO] Using following parameters for creating project from Archetype: quickstart:5.4-beta-28
[INFO] ----------------------------------------------------------------------------
[INFO] Parameter: groupId, Value: com.example
[INFO] Parameter: artifactId, Value: newapp
[INFO] Parameter: version, Value: 1.0-SNAPSHOT
[INFO] Parameter: package, Value: com.example.newapp
[INFO] Parameter: packageInPathFormat, Value: com/example/newapp
[INFO] Parameter: package, Value: com.example.newapp
[INFO] Parameter: version, Value: 1.0-SNAPSHOT
[INFO] Parameter: groupId, Value: com.example
[INFO] Parameter: artifactId, Value: newapp
[INFO] project created from Archetype in dir: /users/joeuser/workspace/tapestry/tapestry-doc-examples/newapp
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 32.094 s
[INFO] Finished at: 2015-04-03T08:10:26-07:00
[INFO] Final Memory: 15M/216M
[INFO] ------------------------------------------------------------------------
~/workspaces/tapestry/tapestry-doc-examples


下载完成后,Maven 会创建一个可运行的框架项目。由于我们指定了新项目的个人ID,所以该项目在新项目的路径被创建(注意:如果你在当前得到一个'Ubable to get resource'的警告,你可以在防火墙里解除Maven资源库的 HTTP 限制)。

执行该项目,需要改变新项目的路径并执行:

$ mvn jetty:run
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building newapp Tapestry 5 Application 1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------

...

Application 'app' (version 1.0-SNAPSHOT-DEV) startup time: 329 ms to build IoC Registry, 919 ms overall.
______                  __             ____
/_  __/__ ____  ___ ___ / /_______ __  / __/
/ / / _ `/ _ \/ -_|_-</ __/ __/ // / /__ \
/_/  \_,_/ .__/\__/___/\__/_/  \_, / /____/
/_/                   /___/  5.4-beta-28 (development mode)

[INFO] Started SelectChannelConnector@0.0.0.0:8080
[INFO] Started Jetty Server
稍等片刻,待下载完成后,你可以打开浏览器,输入 http://localhost:8080/newapp 来查看正在运行的应用:


该项目包含了3个相同风格的页面:初始页面,首页,基本操作页面。你也可以将该项目导入的IDE开始编程,学习下一章节来查看应用组件。

浏览项目结构

newapp/ ├── build.gradle ├── gradle │ └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── pom.xml └── src ├── main │ ├── java │ │ └── com │ │ └── example │ │ └── newapp │ │ ├── components │ │ │ └── Layout.java │ │ ├── pages │ │ │ ├── About.java │ │ │ ├── Contact.java │ │ │ ├── Error404.java │ │ │ ├── Index.java │ │ │ └── Login.java │ │ └── services │ │ ├── AppModule.java │ │ ├── DevelopmentModule.java │ │ └── QaModule.java │ ├── resources │ │ ├── com │ │ │ └── example │ │ │ └── newapp │ │ │ ├── components │ │ │ │ └── Layout.tml │ │ │ ├── logback.xml │ │ │ └── pages │ │ │ ├── About.tml │ │ │ ├── Contact.tml │ │ │ ├── Error404.tml │ │ │ ├── Index.properties │ │ │ ├── Index.tml │ │ │ └── Login.tml │ │ └── log4j.properties │ └── webapp │ ├── WEB-INF │ │ ├── app.properties │ │ └── web.xml │ ├── favicon.ico │ ├── images │ │ └── tapestry.png │ └── mybootstrap │ ├── css │ │ ├── bootstrap-responsive.css │ │ └── bootstrap.css │ ├── img │ │ ├── glyphicons-halflings-white.png │ │ └── glyphicons-halflings.png │ └── js │ └── bootstrap.js ├── site │ ├── apt │ │ └── index.apt │ └── site.xml └── test ├── conf │ ├── testng.xml │ └── webdefault.xml ├── java │ └── PLACEHOLDER └── resources └── PLACEHOLDER 30 directories, 39 files
一个Tapestry应用是由页面组成,每个页面包含一个模板文件和一个Java类。Tapestry 的页面模板文件,拥有.tml后缀并且在应用包 src/main/resources/ 下 (本例:src/main/resources/com/example/newapp/pages). 模板文件本质上是有特殊标记语法,和Java 类相关联的HTML同理,Tapestry 页面Java类在应用包 src/main/java(本例:src/main/java/com/example/newapp/pages)它们的名称匹配 页面文件名称, (Index.tml -> Index.java).在框架项目中,大部分的HTML在页面包里是找不到的除非是一个全局布局组件模板,组件Java 类在src/main/java/com/example/newapp/components,模板文件在src/main/[b]resources/com/example/newapp/components。[/b]下载项目包含一些可选项:Bootstrap Css library 目录,在src/webapp/context/mybootstrap可以查看,在AppModule.java中决定生效与否。
默认情况下,Tapestry 使用的是重写了JQuery Prototype 作为它的前端库。
项目自动添加了简单的过滤器来展示每个请求
项目不仅使用了Maven编译,还有Gradle

下一步

如欲进一步了解,请查看下一节 Tapestry Tutorial ,将会更详细讲述设置和导入项目至Eclipse...然后继续揭示有关Tapestry的更多信息。


                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: