内容提要 本书是一本从头至尾都使用现实世界例子讲述有关编写 Web应用程序的书籍。WebWork所强调的内容是:利用框架实现你的项目,而不是被框架所阻碍。在本书中,我们将从简单的表单及表单处理开始,逐一讲述编写Web应用程序的基础知识:action、interceptor和result,以及控制反转(IoC)模式、对象图导航语言(OGNL)和所有来自WebWork的实用JSP标签等。然后我们着眼于高级的特性,例如校验、数据类型转换、资源依赖、本地化(i18n)、Web应用组件的松耦合,以及大量应对 Web开发中常见的挑战所需要的解决方案。 本书是为那些厌烦了Web开发或者认为会存在更好的Web开发方式的开发人员准备的。我们希望读者对Java及常用的Java API(如Java Collections API)有基本的认识。由于WebWork的内容几乎都与Web相关,那么读者必须对HTML、JavaScript及CSS具有基本程度的认识。而实际上不管是开发新手还是富有经验的软件开发者,甚至是那些缺少Java基础技术背景的开发者都可以阅读本书,并且能够马上提高自己的开发效率。 本书实例 源代码可以从飞思在线和Manning出版社的网站下载。 作者简介 Patrick Lightbody曾经在多家IT公司工作,其中既有思科系统公司这样的巨头,也有硅谷中刚刚起步的小公司,而现在他领导着Jive软件公司的专业服务组织。在业余时间里,他为多个OpenSymphony项目贡献自己的聪明才智。Patrick现在居住于美国俄勒冈州的波特兰市。 目录 第1部分 WebWork简介 第1章 WebWork的概貌 1.1 为什么MVC是重要的 1.2 理解框架和容器 1.3 WebWork:过去、现在和未来 1.4 CaveatEmptor应用程序 1.5 小结 第2章 WebWork方式的HelloWorld 2.1 下载WebWork 2.2 准备骨架程序(skeleton) 2.3 你的第一个action 2.4 处理输入 2.5 高级控制流 2.6 让WebWork完成任务 2.7 小结 第3章 配置WebWork 3.1 配置action、result和interceptor 3.2 高级配置 3.3 其他配置文件 3.4 配置你的Web应用程序 3.5 小结 第2部分 核心概念 第4章 实现WebWork action 4.1 Action接口 4.2 使用ActionSupport基类 4.3 理解基本的校验 4.4 使用本地化的文本信息 4.5 高级输入 4.6 使用ModelDriven action 4.7 通过ActionContext访问数据 4.8 处理文件上传 4.9 小结 第5章 使用interceptor增加功能 5.1 interceptor如何被调用 5.2 使用预建的interceptor 5.3 使用预建的interceptor栈 5.4 构建你自己的interceptor 5.5 interceptor vs. servlet筛选器 5.6 小结 第6章 控制反转 6.1 分析这个模式 6.2 IoC的本质 6.3 使用WebWork的IoC框架 6.4 来自CaveatEmptor的一个例子 6.5 其他的选择 6.6 小结 第3部分 内容的显示 第7章 使用result 7.1 action之后的状态 7.2 通用result 7.3 其他result 7.4 小结 第8章 利用表达式语言获取数据 8.1 什么是表达式语言 8.2 基本的表达式特性 8.3 操作集合(Collections) 8.4 表达式语言的高级特性 8.5 小结 第9章 标签库 9.1 起步 9.2 WebWork标签总览 9.3 数据标签 9.4 控制标签 9.5 杂项标签 9.6 小结 第10章 Velocity 10.1 介绍Velocity 10.2 基本语法和操作 10.3 高级技术 10.4 在Velocity中使用JSP标签 10.5 Velocity模板的装载 10.6 小结 第11章 UI组件 11.1 为什么要为UI标签费心 11.2 UI标签概述 11.3 UI标签指南 11.4 小结 第4部分 高级话题 第12章 类型转换 12.1 为什么需要类型转换 12.2 配置 12.3 简单类型转换 12.4 高级话题 12.5 小结 第13章 校验表单数据 13.1 手动校验数据 13.2 使用校验框架 13.3 研究校验框架的高级特性 13.4 小结 第14章 国际化 14.1 快速浏览一个国际化的例子 14.2 信息的来源 14.3 使用国际化信息 14.4 提示和技巧 14.5 小结 第15章 最佳实践 15.1 搭建环境 15.2 单元测试action 15.3 综合测试 15.4 测试校验 15.5 高级UI标签的用法 15.6 使用表单标记(token)以防止重复提交 15.7 自动显示等待页面 15.8 用单个action完成CRUD操作 15.9 小结 附录A WebWork架构 A.1 实现命令模式 A.2 action A.3 interceptor A.4 result A.5 值栈 A.6 ActionProxy/ActionInvocation A.7 ActionContext A.8 Servlet分派器 A.9 小结 |