开始使用Tapestry
来源:互联网 发布:php curl 设置头部 编辑:程序博客网 时间:2024/05/20 00:51
去年年底进入一家新的公司,公司使用的技术是自己以前没涉及的,现将官方文档阅读翻译记录到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: 5Choose org.apache.tapestry:quickstart version:1: 5.32: 5.3.13: 5.3.24: 5.3.3-rc-15: 5.3.36: 5.3.47: 5.3.58: 5.3.69: 5.3.710: 5.3.811: 5.4-beta-312: 5.4-beta-613: 5.4-beta-2214: 5.4-beta-2615: 5.4-beta-2716: 5.4-beta-28Choose a number: 16: 16Define value for property 'groupId': : com.exampleDefine value for property 'artifactId': : newappDefine value for property 'version': 1.0-SNAPSHOT: :Define value for property 'package': com.example: : com.example.newappConfirm properties configuration:groupId: com.exampleartifactId: newappversion: 1.0-SNAPSHOTpackage: 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 └── PLACEHOLDER30 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/resources/com/example/newapp/components。
下载项目包含一些可选项:
- Bootstrap Css library 目录,在src/webapp/context/mybootstrap可以查看,在AppModule.java中决定生效与否。
- 默认情况下,Tapestry 使用的是重写了JQuery的 Prototype 作为它的前端库。
- 项目自动添加了简单的过滤器来展示每个请求
- 项目不仅使用了Maven编译,还有Gradle
下一步
如欲进一步了解,请查看下一节 Tapestry Tutorial ,将会更详细讲述设置和导入项目至Eclipse...然后继续揭示有关Tapestry的更多信息。
1 0
- 开始使用Tapestry
- Tapestry学习开始了
- tapestry方面开始起稿
- 使用tapestry-prop提高Tapestry运行效率
- 使用tapestry-delegate提高Tapestry运行效率
- 使用tapestry-prop提高Tapestry运行效率
- 使用tapestry-delegate提高Tapestry运行效率
- 使用tapestry-prop提高Tapestry运行效率
- 使用tapestry-delegate提高Tapestry运行效率
- Tapestry 4.0 使用简要
- tapestry restful架构使用
- 结合Hibernate使用Tapestry
- Tapestry
- Tapestry
- Tapestry
- Tapestry
- Tapestry
- Tapestry
- Android项目:手机安全卫士(6)—— 手机防盗设置向导
- HBase requestsPerSecond到底是什么?
- hdu3652B-number (数位dp)
- Struts2基础(Action类应用详解)
- git查看本地和创建分支、上传分支、提交代码到分支、删除分支等,git分支
- 开始使用Tapestry
- Linux内存寻址之分段机制及分页机制
- 关于程序forceclose时优雅退出解决方案
- 前端开发工程化探讨--基础篇
- 获取网络gif时候报错 <Error>: ImageIO: _CGImagePluginInitGIF malformed GIF frame#0
- 分布式进阶(十六)Zookeeper入门基础
- 浅析Java虚拟机结构与机制[转]
- BlockingQueue
- 访问 NULL 指针错误背后的原理