1、Struts 2:现代Web框架

1.1 web应用程序:快速学习 2
1.1.1 构建web应用程序 2
1.1.2 基础技术简介 3
1.1.3 深入研究 6
1.2 web应用程序框架 7
1.2.1 什么是框架 7
1.2.2 为什么使用框架 8
1.3 struts 2框架 9
1.3.1 struts 2简史 9
1.3.2 struts 2概览:mvc模式 10
1.3.3 struts 2的工作原理 12
1.4 小结 14

2、初识Struts 2

2.1 声明性架构 16
2.1.1 两种配置 16
2.1.2 声明架构的两种方式 17
2.1.3 智能默认值 20

2.2 简单的helloworld示例 20
2.2.1 部署示例应用程序 20
2.2.2 探索helloworld应用程序 24
2.3 使用注解的helloworld 31
2.4 小结 33

3、使用Struts 2动作

3.1 struts 2动作简介 36
3.2 打包动作 39
3.2.1 struts 2公文包示例应用程序 39
3.2.2 组织你的包 39
3.2.3 使用struts-default包中的组件 41
3.3 实现动作 43
3.3.1 可选的action接口 44
3.3.2 actionsupport类 45
3.4 向对象传递数据 51
3.4.1 对象支持的javabean属性 52
3.4.2 modeldriven动作 54
3.4.3 域对象用作数据转移的潜在危险 55
3.5 案例研究:文件上传 56
3.5.1 通过struts-default包获得内建的支持 56
3.5.2 fileupload拦截器做什么 57
3.5.3 struts 2公文包示例代码研究 58
3.6 小结 60

4、使用拦截器追加工作流

4.1 为什么要拦截请求 61
4.1.1 清理mvc 61
4.1.2 从拦截器受益 63
4.1.3 开发拦截器 64
4.2 拦截器的工作原理 64
4.2.1 总指挥actioninvocation 64
4.2.2 如何触发拦截器 64
4.3 研究内建的struts 2拦截器 67
4.3.1 工具拦截器 67
4.3.2 数据转移拦截器 67
4.3.3 工作流拦截器 69
4.3.4 其他拦截器 72
4.3.5 内建的拦截器栈 73
4.4 声明拦截器 74
4.4.1 声明独立的拦截器和拦截器栈 74
4.4.2 将拦截器映射到动作组件 76
4.4.3 设置、覆盖拦截器参数 77
4.5 构建自定义拦截器 78
4.5.1 实现interceptor接口 78
4.5.2 构建authenticationinterceptor拦截器 79
4.6 小结 82

5、数据转移:OGNL和类型转换

5.1 数据转移和类型转换:web应用程序领域的常见任务 85
5.2 ognl和struts 2 85
5.2.1 ognl是什么 85
5.2.2 ognl如何融入框架 87
5.3 内建的类型转换器 89
5.3.1 立即可用的类型转换器 89
5.3.2 使用ognl表达式从表单字段名映射到属性 90
5.4 自定义类型转换 101
5.4.1 实现类型转换器 102
5.4.2 在string和circle之间转换 102
5.4.3 配置框架使用自定义转换器 103
5.5 小结 106

6、构建视图:标签

6.1 入门 108
6.1.1 actioncontext和ognl 109
6.1.2 虚拟对象valuestack 111
6.2 struts 2标签概要 113
6.2.1 struts 2标签api语法 113
6.2.2 使用ognl设置标签属性 115
6.3 数据标签 117
6.3.1 property标签 117
6.3.2 set标签 118
6.3.3 push标签 119
6.3.4 bean标签 120
6.3.5 action标签 122
6.4 控制标签 124
6.4.1 iterator标签 124
6.4.2 if和else标签 125
6.5 其他标签 126
6.5.1 include标签 126
6.5.2 url标签 127
6.5.3 i18n和text标签 128
6.5.4 param标签 129
6.6 使用jstl和其他本地标签 130
6.7 ognl表达式语言的基础知识 130
6.7.1 什么是ognl 130
6.7.2 struts 2中常用的表达式语言特性 131
6.7.3 表达式语言的高级特性 135
6.8 小结 137

7、UI组件标签

7.1 为什么需要ui组件标签 139
7.2 标签、模板和主题 144
7.2.1 标签 146
7.2.2 模板 146
7.2.3 主题 146
7.3 ui组件标签 148
7.3.1 通用属性 148
7.3.2 简单组件 149
7.3.3 基于集合的组件 159
7.3.4 额外的组件 166
7.4 小结 168

8、结果

8.1 动作之后 170
8.1.1 页面上:如何使用自定义结果组件构建struts 2 ajax应用程序 171
8.1.2 实现json结果类型 173
8.2 常用的结果类型 180
8.2.1 requestdispatcher,也叫做dispatcher 180
8.2.2 servletredirectresult,也叫做redirect 186
8.2.3 servletactionredirectresult,也叫做redirectaction 188
8.3 jsp替代品 189
8.3.1 velocityresult,也叫做velocity 189
8.3.2 freemarkerresult,也叫做freemarker 191
8.4 全局结果 192
8.5 小结 193

9、集成Spring和Hibernate/JPA

9.1 为什么在struts 2中使用spring 196
9.1.1 依赖注入能做些什么 197
9.1.2 spring如何管理对象和注入依赖 199
9.1.3 使用接口隐藏实现 200
9.2 将spring添加到struts 2 202
9.2.1 让spring管理动作、拦截器和结果的创建 203
9.2.2 使用自动连线将依赖注入到动作、拦截器和结果 205
9.3 为什么在struts 2中使用jpa 207
9.3.1 使用jpa和hibernate建立项目 208
9.3.2 基于spring管理jpa编写代码 212
9.4 小结 216

10、探索验证框架

10.1 熟悉数据验证框架 217
10.1.1 验证框架的架构 218
10.1.2 struts 2工作流中的验证框架 219
10.2 将动作关联到验证框架 222
10.2.1 使用actionclass-validations.xml声明验证元数据 223
10.2.2 研究内建的验证器 226
10.3 编写自定义验证器 227
10.3.1 检查密码强度的自定义验证器 227
10.3.2 使用自定义数据验证器 229
10.4 验证框架的高级主题 230
10.4.1 在域对象级别验证 231
10.4.2 使用验证上下文优化验证 233
10.4.3 验证继承 235
10.4.4 验证短路效应 236
10.4.5 使用注解声明验证 237
10.5 小结 239

11、理解国际化

11.1 struts 2框架和java i18n 241
11.1.1 使用resourcebundle和locale取得本地化文本 241
11.1.2 struts 2如何解决本地java对i18n支持的问题 243
11.2 struts 2 i18n示例 244
11.2.1 struts 2 i18n快速展示 244
11.2.2 幕后一览 246
11.3 struts 2 i18n详情 247
11.3.1 struts 2默认的textprovider re-sourcebundle搜索算法 248
11.3.2 从包中取得消息文本 251
11.3.3 使用i18n标签指定包 254
11.3.4 参数化本地化文本 255
11.3.5 格式化日期和数字 256
11.4 覆盖框架默认的地域决定 257
11.4.1 让用户交互地设置地域 257
11.4.2 以编码的方式设置地域 259
11.5 小结 260

12、使用插件扩展Struts 2

12.1 插件概要 264
12.2 常用插件 265
12.2.1 sitemesh 266
12.2.2 tiles 267
12.2.3 jfreechart 269
12.3 内部组件系统 271
12.3.1 bean 271
12.3.2 常量 272
12.3.3 注入 272
12.3.4 struts内部扩展点 273
12.4 编写浏览路径插件 274
12.5 小结 278

13、最佳实践

13.1 建立开发环境 279
13.1.1 建立ide 280
13.1.2 重新加载资源 280
13.2 对动作进行单元测试 281
13.2.1 将ioc用于测试的优势 281
13.2.2 junit与测试 282
13.2.3 测试validation.xml文件 284
13.3 最大化重用 284
13.3.1 使用component标签组件化 285
13.3.2 重用模板化的标签 286
13.3.3 连接ui标签和对象 287
13.4 高级ui标签的使用 288
13.4.1 覆盖既有模板 288
13.4.2 编写自定义模板 288
13.4.3 编写自定义主题 289
13.5 小结 289

14、从经典Struts 迁移

14.1 翻译经典struts的知识 290
14.1.1 动作 290
14.1.2 actionform怎么了 292
14.1.3 切换标签库 293
14.1.4 拆分消息资源 294
14.2 逐步转换 296
14.2.1 逐步实现 296
14.2.2 动作映射 298
14.2.3 动作在哪里遇到表单 300
14.2.4 转换页面 301
14.2.5 不说英语 303
14.2.6 数据警察 304
14.2.7 两者能够和睦相处吗 306
14.3 小结 307

15、高级主题

15.1 高级动作的应用 308
15.2 动态方法调用 310
15.2.1 通配符方法的选择 310
15.2.2 动态工作流 312
15.3 使用令牌防止表单重复提交 313
15.3.1 使用s:token/表单标签 313
15.3.2 令牌拦截器规则的例外 314
15.4 自动显示等待页面 316
15.5 完成crud操作的一个动作 317
15.5.1 crud 317
15.5.2 拦截器和接口 318
15.5.3 连接各部分 323
15.6 tiles和struts 2 325
15.6.1 关注网站的界面外观 325
15.6.2 配置相互关系 326
15.6.3 使用声明性架构 329
15.6.4 使用tiles控制器准备网页内容 331
15.7 小结 332

读书笔记--Struts 2 in Action 目录的更多相关文章

  1. OCP读书笔记(3) - 使用RMAN恢复目录

    创建恢复目录 在hndx上创建恢复目录:[oracle@oracle admin]$ export ORACLE_SID=hndx[oracle@oracle admin]$ sqlplus / as ...

  2. ASP.NET Core 2 High Performance 目录和读书笔记

    ASP.NET Core 2 High Performance 大概的翻看了一下这本书,这本C# 7 and .NET Core 2.0 High Performance内容要好很多,这里先放出对应目 ...

  3. 《ASP.NET Core In Action》读书笔记系列,这是一个手把手的从零开始的教学系列目录

    最近打算系统学习一下asp.net  core ,苦于没有好的中文书藉,只好找来一本英文的 <ASP.NET Core In Action>学习.我和多数人一样,学习英文会明显慢于中文.希 ...

  4. Struts 2读书笔记-----Action访问Servlet API

    Action访问Servlet API Struts2中的Action并没有和任何Servlet API耦合,这样框架更具灵活性,更易测试. 对于Web应用的控制器而言,不访问ServletAPI是几 ...

  5. 《Linux内核设计与实现》读书笔记 - 目录 (完结)

    读完这本书回过头才发现, 第一篇笔记居然是 2012年8月发的, 将近一年半的时间才看完这本书(汗!!!). 为了方便以后查看, 做个<Linux内核设计与实现>读书笔记 的目录: < ...

  6. AngularJS in Action读书笔记6(实战篇)——bug hunting

    这一系列文章感觉写的不好,思维跨度很大,原本是由于与<Angularjs in action>有种相见恨晚而激发要写点读后感之类的文章,但是在翻译或是阐述的时候还是会心有余而力不足,零零总 ...

  7. 《Linux内核设计与实现》读书笔记 - 目录 (完结)【转】

    转自:http://www.cnblogs.com/wang_yb/p/3514730.html 读完这本书回过头才发现, 第一篇笔记居然是 2012年8月发的, 将近一年半的时间才看完这本书(汗!! ...

  8. struts 2读书笔记-----struts2的开发流程

    一.将struts 2的lib文件夹下地commons-fileupload.jar.commons-io.jar.freemarker.jar.javassist.jar.ognl.jar.stru ...

  9. 《Essential C++》读书笔记 之 目录导航

    <Essential C++>读书笔记 之 目录导航 2014-07-06 第一章:<Essential C++>读书笔记 之 C++编程基础 第二章:<Essentia ...

随机推荐

  1. h5页面在不同ios设备上的问题总结

    1.日期问题 对于yyyy-mm-dd hh:mm:ss 这种格式在ios系统不识别 时间格式化的时候,在浏览器端处理好好的,到了手机端,就变成NAN,或者null,这种情况,是ios系统不能转化这种 ...

  2. 【JZOJ3318】Brunhilda的生日

    description 除去对铁质盔甲强烈的热爱,Brunhilda是一个正常的7岁女孩.近期,她正在策划一个完美的生日派对.她发明了如下的一个游戏:所有的孩子在一个数k被宣读之前不停地跑来跑去.当这 ...

  3. Audio 标签的使用和自己封装一个强大的React音乐播放器

    原文地址:https://www.dodoblog.cn/blog?id=5be84d5c70b2b617f27a4610 这篇文章主要介绍一下博客里的这个音乐播放器是怎么写的 为了更好的表达高深的东 ...

  4. IOS6 新特性之UIActivityViewController详解

    新的IOS6增加了一些新特性.因为应用需要,所以在国庆的几天里.研究了一下IOS6的说明文档,然后大概地总结了一下UIActivityViewController的用法与大家分享. 首先 从实际效果入 ...

  5. Android之FrameLayout帧布局

    1.简介 这个布局直接在屏幕上开辟出一块空白的区域,当我们往里面添加控件的时候,会默认把他们放到这块区域的左上角; 帧布局的大小由控件中最大的子控件决定,如果控件的大小一样大的话,那么同一时刻就只能看 ...

  6. Django 异步任务、定时任务Celery

    将任务分配给其他的进程去运行,django的主进程只负责发起任务,而执行任务的不在使用django的主进程.Python有一个很棒的异步任务框架,叫做celery. Django为了让开发者开发更加方 ...

  7. 03jQuery对象初识(二)筛选器2

    1.下面的筛选都是非常常用的 <ul> <li id="l0">l0</li> <li>l1</li> <li&g ...

  8. 编写函数处理user_list,新方法

    写函数,完成以下功能: # 例如有: user_list=[ {"name": "alex","hobby":"抽烟"} ...

  9. Activiti 变量设置

    使用工作流的时候必定会附上一些变量.例如,请假的时候有填写请假理由,天数等等.可以用以下代码实现 public void setVariables(){ /**与任务(正在执行)*/ TaskServ ...

  10. Hadoop构架概览

    hadoop是一个开源的软件框架,是一个利用商业硬件处理和存储大型数据的软件.从下到上主要有五个主要的组成部分: 集群,是一套主机(节点)组成的.节点可以以机架划分.这个是硬件级别的构架. YARN构 ...