没有合适的资源?快使用搜索试试~ 我知道了~
首页Tapestry5最新中文入门实例教程
本文介绍Tapestry框架版本5。本文利用Tapestry 5开发一个简单的具有创建/读/更新/删除功能的应用,在创建这个应用的过程中,本文体会到Tapestry带来的开发效率的提升。从多方面来讲解 Tapestry应用,比如应用的页面导航(page navigation)、依赖性(dependency)和资源注入(resource injection)、用户输入验证(input validation)和应用状态管理(state management)。还将了解如何应用Tapestry中内嵌的Ajax功能来创建支持Ajax的组件。
资源详情
资源评论
资源推荐
作者 译者 沙晓兰
发布于 年 月 日 下午 时 分
社区
主题
框架
引言
是一个使用 语言创建 应用的面向组件的开发框
架。 应用建立在根据组件构建的页面的基础上。这个框架能够提供输
入验证()、本地化/国际化(/
)、状态/持续性(/)管理、 !
构建/参数映射(""#)等功能。
为什么 值得推荐呢?一部分原因是:
它便于终端用户使用。 在设计最初就考虑到了应用的安全和伸
缩性,有内嵌的 $%、输入验证、国际化以及异常报告功能。
它便于开发人员使用。 独一无二的类重加载(&
#)特性大大地推动了开发人员的开发效率。借助于
,对源代码的修改立马就可以看到结果,不需要重新部署和启
动应用 !它的异常报告也极为具体,甚至提供可能的修正建议。
它便于 设计者使用。 页面是有效的 '(!(或 )'(!)
文件!你可以用自己喜欢的浏览器打开这些页面。
它封装了最佳实践: *+ 风格的 !、可降解的 +、没有
)(! 的配置等等。
它支持与 '、+#、+"、#
等框架的集成。
本文中,我们会向大家介绍 框架版本
, 。我们将利用 , 开
发一个简单的具有创建/读/更新/删除功能的应用,在创建这个应用的过程
中,你将体会到 带来的开发效率的提升。我们会从多方面来讲解
应用,比如应用的页面导航(##)、依赖性
()和资源注入($)、用户输入验证
()和应用状态管理("#")等等。你还将
了解如何应用 中内嵌的 $% 功能来创建自己的支持 $% 的组件。
本文的目标在于向大家展示如何借助 在尽可能减小开发花销的情况
下创建更漂亮、更好用、更安全、更灵活的应用。
先决条件
开发本文所举例子,需要安装下列软件:
!"#$ 版本或更新版本。可以从
-..$//".$..下载。
容器,如 ",/,
或更新版本。
可以选择下载安装 (//。在这种情况下,拟不需要再
安装一个单独的 容器,可以使用 ( 来构建并运行
, 应用(请参考 %
以获得更多相关信息)。
我们也建议使用当前流行的集成开发环境(),如 *
或
01,你可以使用这些集成开发环境来编辑应用中的 和
'(! 文件。
第一个 "应用
开始着手使用 框架来开发应用的方式有很多,其中一种是下载这里
提供的 %&' %(!) 文件,将它们载入你所选择的 23* 中。如
果你选择的是结合 工具的 * 的话,那么你需要完成下列步骤:
启动 * 并使用 视图
选择“文件”45导入”……或者在项目浏览窗口右击鼠标,选择“导入”……
在“导入”对话框中,选择“%( 文件”选项,然后点击“下一步”。
点击“浏览…”,然后从文件系统中选择 %( 文件。如果你还没有服务
器运行环境的话, 那就需要选择一个已安装的运行环境,比如
"。
点击“结束”,23* 环境会根据导入的 %( 文件生成一个 项目。
你也可以使用 (,在 %
中有更多关于如何使用
*& 原型来开发 项目的信息。
在刚创建的这个项目上点击鼠标右键,选择 (4 来
启动应用。服务器启动之后,在浏览器地址栏输入 !:-..-
.,你会看到如下页面:
第一个 应用就这样轻松搞定6并且启动运行了。我们来看一下这个项
目的目录结构:
在 文件夹下,你可以找到这个示范应用的 包++",。该应用
的 -#. 部署描述器中,你可以发现一个叫做 #+
& 的上下文参数,该参数值就是这个应用包的名字。和几乎所有的
开发框架不同的是,, 不需要任何 )(! 配置文件。刚刚
提到的上下文参数是唯一一个你需要提供的配置。它告诉 在运行时
从哪里可以找到应用的页面、组件以及其它一些必需的类。比如,页面类应该
被存储在 #+& 下名为 # 的子包中(也就是
",#),对应地,组件的类则应该存储在
",#& 中。
第一个 页面
让我们从第一个 页面开始这个示范应用的开发旅程。每个
页面都由一个 类和 组件模板合成。组件模板是指那些以“/"7
为扩展名的文件,这里“"7是 标记语言(/
0)的缩写。页面模板和页面通常存储于同一个类包中,但也可以直
接存储在 应用的根目录(8)中。 模板是组织良好
的 )(! 文档,你可以以修改 )'(! 文档同样的方式来对待这些模板。
的元素和属性都在其对应的 )(! 命名空间中定义,通常都以“-7作
为前缀。在 中,+ 页面等同于“%7页面,如果 ! 中没有明
确指明页面的名字的话,那么 + 页面会作为默认页面被调用。
针对本文中的示范应用,我们一起来简单地修改一下 # 文件。让我们
把这个文件中所有的初始内容删除掉,从头开始,使用下面这段代码来更新这
个模板:
9"
%"-:;-..//#.".<,<</%;4
94
94,3"9.4
9.4
94
=>?
9.4
9."4
标签中有这样一个表达式:=>?,这个表达式被称作扩展
(%)。在这段示范代码中,这个扩展被用来访问对应的页面类
",## 的 '%, 属性。
接下来,我们在 ",# 包中创建一个 + 类。和几乎所有其他的
- 框架不同的是, 不会强迫你在基础类的基础上进行扩展,
也不强迫你去实现一个特定的接口。 页面是 @AA(12,
23&)。和所有 @AA 一样,页面类必须声明为 ,并且必须
拥有一个无参构造函数。你需要考虑的仅仅是应用的 包和它的页面、组件
等等的子包。
这个模板中提到了一个叫做 '%, 的属性,那么我们现在就来创建这个
属性。 遵循 + 的 1 代码编写规范,所以我们需要创建一
个命名为 4%, !的 方法。但为了更好地理解
的工作原理,我们先不创建这个 4%, !方法,而是创建一个叫做
4 !的方法,看看 将会有怎样的反应:
B#,"/#C
+>
+##'DE>
;'F;C
?
?
如果这时候你访问这个应用的话,你会看到 的标准异常页面:
这个异常页面,不仅仅拥有报告错误(拼写错误或者错误的属性名)的作用,
它还列出一系列有用的属性以方便开发人员纠正其错误。同时,它还指明了错
误在模板中所处的位置,它不单告诉你这个错误发生在哪个文件哪行,甚至能
够提供给你错误所处位置前后一小段代码。 的这个功能比较贴近于开
发者的实际需要,也是它本身许多与众不同的优点之一。
现在,我们可以将 # 文件中的错误表达式更正为56'7,然后再
刷新页面的话,我们就可以看到这样一个正确的页面:
剩余36页未读,继续阅读
xxxgirls
- 粉丝: 0
- 资源: 5
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- 2022年中国足球球迷营销价值报告.pdf
- 房地产培训 -营销总每天在干嘛.pptx
- 黄色简约实用介绍_汇报PPT模板.pptx
- 嵌入式系统原理及应用:第三章 ARM编程简介_3.pdf
- 多媒体应用系统.pptx
- 黄灰配色简约设计精美大气商务汇报PPT模板.pptx
- 用matlab绘制差分方程Z变换-反变换-zplane-residuez-tf2zp-zp2tf-tf2sos-sos2tf-幅相频谱等等.docx
- 网络营销策略-网络营销团队的建立.docx
- 电子商务示范企业申请报告.doc
- 淡雅灰低面风背景完整框架创业商业计划书PPT模板.pptx
- 计算模型与算法技术:10-Iterative Improvement.ppt
- 计算模型与算法技术:9-Greedy Technique.ppt
- 计算模型与算法技术:6-Transform-and-Conquer.ppt
- 云服务安全风险分析研究.pdf
- 软件工程笔记(完整版).doc
- 电子商务网项目实例规划书.doc
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论5