《Struts2.1权威指南》PDF下载

  • 购买积分:21 如何计算积分?
  • 作  者:李刚编著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2009
  • ISBN:9787121085925
  • 页数:770 页
图书介绍:本书第二版保留了第一版的通俗易懂的写作风格:按Struts 2.1的架构体系,细致地介绍了Struts 2.1各个知识点。在介绍过程中,笔者在介绍Struts 2.1框架时,既照顾到了Struts 2.1初学者的能力,对每个知识点都给出简单的快速上手的示例;同时也考虑到开发者在日后开发中可能遇到的问题,详细讲解了每个知识点的各种用法,本书覆盖了Struts 2.1近80%的API。因此,本书完全可以作为Struts 2框架的权威手册,以供开发者在实际开发过程中参考。

第1章 Struts 2概述 1

1.1 MVC思想概述 2

1.1.1 Web技术的发展 2

1.1.2 Model1和Model 2 4

1.1.3 MVC思想及其优势 6

1.1.4 常用的MVC框架 7

1.2 Struts 2的起源和背景 8

1.2.1 Struts 1简介及存在的问题 9

1.2.2 WebWork简介 12

1.2.3 Struts 2起源 15

1.3 Struts 2体系介绍 16

1.3.1 Struts 2框架架构 16

1.3.2 Struts 2的配置文件 17

1.3.3 Strut 2的标签库 18

1.3.4 Struts 2的控制器组件 19

1.4 Struts 2与Struts 1的对比 20

1.5 WebWork和Struts 2对比 21

1.6 本章小结 22

第2章 Struts 2下的HelloWorld 23

2.1 下载和安装Struts 2框架 23

2.2 从用户请求开始 25

2.3 创建Struts 2的Web应用 27

2.3.1 创建Web应用 27

2.3.2 增加Struts 2功能 28

2.4 实现控制器 28

2.4.1 实现控制器类 29

2.4.2 配置Action 30

2.4.3 增加视图资源完成应用 30

2.5 改进控制器 32

2.5.1 实现Action接口 32

2.5.2 跟踪用户状态 33

2.5.3 添加处理信息 35

2.5.4 输出处理信息 37

2.6 改进视图组件 39

2.6.1 改善输出页面 39

2.6.2 使用UI标签简化表单页面 40

2.7 完成程序国际化 42

2.7.1 定义国际化资源文件 42

2.7.2 加载资源文件 43

2.7.3 输出国际化信息 44

2.8 增加数据校验 46

2.8.1 继承ActionSupport 46

2.8.2 使用Struts 2的校验框架 49

2.9 本章小结 51

第3章 Struts 2基础 52

3.1 WebWork的MVC实现 52

3.1.1 WebWork的下载和安装 53

3.1.2 实现Action 53

3.1.3 配置Action 56

3.1.4 完成数据校验 58

3.1.5 完成应用流程 59

3.2 在Eclipse中开发Struts 2 60

3.2.1 创建Web应用 61

3.2.2 增加Struts 2支持 63

3.2.3 部署Struts 2应用 64

3.2.4 增加应用的Action 65

3.3 Struts 2的基本流程 66

3.3.1 核心控制器:FilterDispatcher 66

3.3.2 业务控制器 67

3.3.3 Struts 2的模型组件 67

3.3.4 Struts 2的视图组件 68

3.3.5 Struts 2的运行流程 68

3.4 Struts 2的基本配置 69

3.4.1 配置web.xml文件 69

3.4.2 struts.xml配置文件 71

3.4.3 struts.properties配置文件 74

3.4.4 struts.xml文件结构 78

3.5 本章小结 82

第4章 深入Struts 2 83

4.1 深入Struts 2的配置文件 83

4.1.1 Bean配置 84

4.1.2 常量配置 85

4.1.3 包配置 87

4.1.4 命名空间配置 89

4.1.5 包含配置 91

4.1.6 拦截器配置 91

4.2 Struts 2的Action 92

4.2.1 实现Action处理类 92

4.2.2 Action访问Servlet API 97

4.2.3 Action直接访问Servlet API 100

4.2.4 配置Action 103

4.2.5 配置Action的默认处理类 104

4.2.6 动态方法调用 105

4.2.7 为action元素指定method属性 107

4.2.8 使用通配符 109

4.2.9 配置默认Action 115

4.3 管理处理结果 116

4.3.1 处理结果的改进 116

4.3.2 配置结果 117

4.3.3 Struts 2支持的处理结果类型 118

4.3.4 plainText结果类型 120

4.3.5 redirect结果类型 123

4.3.6 redirectAction结果类型 124

4.3.7 动态结果 125

4.3.8 请求参数决定结果 126

4.3.9 全局结果 129

4.4 属性驱动和模型驱动 130

4.4.1 模型的作用 130

4.4.2 使用模型驱动 131

4.5 Struts 2的异常机制 134

4.5.1 Struts 2的异常处理哲学 135

4.5.2 声明式异常捕捉 136

4.5.3 输出异常信息 139

4.6 未知处理器 141

4.7 本章小结 143

第5章 Struts 2的类型转换 144

5.1 类型转换的意义 145

5.1.1 表现层数据处理 145

5.1.2 类型转换 145

5.2 Struts 2内建的类型转换器 149

5.3 基于OGNL的类型转换 151

5.4 自定义类型转换器 155

5.4.1 系统需求 155

5.4.2 实现类型转换器 157

5.4.3 局部类型转换器 159

5.4.4 全局类型转换器 161

5.4.5 基于Struts 2的类型转换器 163

5.4.6 数组属性的类型转换器 165

5.4.7 集合属性的类型转换器 168

5.5 集合类型转换的高级特性 170

5.5.1 指定集合元素的类型 170

5.5.2 为Set集合的元素指定索引属性 172

5.6 类型转换中错误处理 174

5.6.1 类型转换的错误处理流程 174

5.6.2 处理类型转换错误 176

5.6.3 输出类型转换错误 176

5.6.4 处理集合属性的转换错误 179

5.7 本章小结 182

第6章 Struts 2的输入校验 183

6.1 输入校验概述 184

6.1.1 为什么需要输入校验 184

6.1.2 客户端校验 185

6.1.3 服务器端校验 187

6.1.4 类型转换和输入校验 191

6.2 基本输入校验 192

6.2.1 编写校验规则文件 192

6.2.2 国际化提示信息 195

6.2.3 使用客户端校验 197

6.3 校验器的配置风格 200

6.3.1 字段校验器配置风格 201

6.3.2 非字段校验器配置风格 201

6.3.3 短路校验器 203

6.3.4 校验顺序和短路 205

6.4 校验文件的搜索规则 205

6.5 内建校验器 208

6.5.1 注册校验器 208

6.5.2 必填校验器 210

6.5.3 必填字符串校验器 210

6.5.4 整数校验器 211

6.5.5 日期校验器 212

6.5.6 表达式校验器 213

6.5.7 字段表达式校验器 213

6.5.8 邮件地址校验器 214

6.5.9 网址校验器 215

6.5.10 Visitor校验器 216

6.5.11 转换校验器 219

6.5.12 字符串长度校验器 220

6.5.13 正则表达式校验器 221

6.6 基于Annotation的输入校验 221

6.7 手动完成输入校验 223

6.7.1 重写validate()方法 223

6.7.2 重写validateXxx()方法 225

6.7.3 Struts 2的输入校验流程 227

6.8 本章小结 228

第7章 上传和下载文件 229

7.1 文件上传的原理 230

7.1.1 表单元素的enctype属性 230

7.1.2 手动上传 233

7.1.3 使用上传框架完成上传 235

7.2 Struts 2的文件上传 241

7.2.1 Struts 2的文件上传支持 241

7.2.2 实现文件上传的Action 242

7.2.3 配置文件上传的Action 244

7.2.4 手动实现文件过滤 246

7.2.5 拦截器实现文件过滤 249

7.2.6 输出错误提示 250

7.2.7 文件上传的常量配置 252

7.3 使用Pell上传 252

7.4 同时上传多个文件 253

7.4.1 使用数组同时上传多个文件 254

7.4.2 使用List同时上传多个文件 257

7.5 使用Struts 2控制文件下载 258

7.5.1 实现文件下载的Action 259

7.5.2 配置Action 260

7.5.3 下载前的授权控制 261

7.6 本章小结 263

第8章 Struts 2的国际化 264

8.1 程序国际化简介 265

8.1.1 程序国际化的意义 265

8.1.2 Java国际化的思路 265

8.1.3 Java支持的语言和国家 266

8.1.4 完成程序国际化 267

8.1.5 使用MessageFormat处理带占位符的消息 269

8.1.6 使用类文件代替资源文件 270

8.2 Struts 2的国际化入门 271

8.2.1 加载全局资源文件 271

8.2.2 访问国际化消息 272

8.2.3 输出带占位符的国际化消息 275

8.3 加载资源文件的不同方式 277

8.3.1 包范围资源文件 277

8.3.2 Action范围资源文件 279

8.3.3 临时指定资源文件 279

8.3.4 加载资源文件的顺序 281

8.4 允许用户自行选择程序语言 282

8.4.1 Struts 2国际化的运行机制 282

8.4.2 创建下拉列表框 283

8.4.3 选择程序语言 286

8.5 本章小结 287

第9章 Struts 2的标签库 288

9.1 Struts 2标签库概述 289

9.1.1 标签的优势 289

9.1.2 Struts 2的标签分类 290

9.2 Struts 2标签入门 291

9.2.1 使用Struts 2标签的准备 291

9.2.2 Struts 2的OGNL表达式语言 292

9.2.3 OGNL中的集合操作 295

9.2.4 访问静态成员 296

9.2.5 Lambda(λ)表达式 296

9.3 控制标签 297

9.3.1 if/elseif/else标签 297

9.3.2 iterator标签 298

9.3.3 append标签 300

9.3.4 generator标签 302

9.3.5 merge标签 304

9.3.6 subset标签 304

9.3.7 sort标签 307

9.4 数据标签 309

9.4.1 action标签 309

9.4.2 bean标签 311

9.4.3 date标签 313

9.4.4 debug标签 314

9.4.5 include标签 315

9.4.6 param标签 316

9.4.7 push标签 316

9.4.8 set标签 317

9.4.9 url标签 319

9.4.10 property标签 320

9.5 主题和模板 321

9.5.1 选择主题 321

9.5.2 自定义主题 323

9.6 表单标签 325

9.6.1 表单标签的通用属性 325

9.6.2 表单标签的name和value属性 328

9.6.3 checkboxlist标签 328

9.6.4 combobox标签 331

9.6.5 doubleselect标签 331

9.6.6 head标签 334

9.6.7 optiontransferselect标签 334

9.6.8 select标签 336

9.6.9 radio标签 337

9.6.10 optgroup标签 338

9.6.11 token标签 340

9.6.12 updownselect标签 341

9.7 非表单标签 343

9.7.1 actionerror和actionmessage标签 343

9.7.2 component标签 344

9.8 本章小结 347

第10章 Struts 2的拦截器 348

10.1 理解拦截器 349

10.1.1 理解DRY规则 349

10.1.2 拦截器的意义 350

10.1.3 拦截器的实现原理 352

10.1.4 拦截器和AOP的关系 356

10.1.5 拦截器在Struts 2中的作用 357

10.2 拦截器配置初步 359

10.2.1 配置拦截器 359

10.2.2 使用拦截器 361

10.2.3 配置默认拦截器 362

10.3 Struts 2内建的拦截器 365

10.3.1 Struts 2内建的拦截器 365

10.3.2 struts-default.properties里配置的拦截器 366

10.4 开发自己的拦截器 370

10.4.1 实现拦截器类 371

10.4.2 使用拦截器 372

10.4.3 拦截器和Struts 2插件的关系 374

10.5 深入拦截器编程 375

10.5.1 拦截方法的拦截器 375

10.5.2 拦截器的执行顺序 378

10.5.3 拦截结果的监听器 380

10.5.4 覆盖拦截器栈里特定拦截器的参数 381

10.6 拦截器示例:实现权限控制 383

10.6.1 实现拦截器类 383

10.6.2 配置权限控制拦截器 384

10.7 本章小结 386

第11章 Struts 2的Ajax支持 387

11.1 Ajax概述 388

11.1.1 Ajax的起源和变革 388

11.1.2 Ajax的核心技术 391

11.2 Struts 2提供的Ajax支持 393

11.3 基于Dojo的异步表单 397

11.3.1 安装Dojo插件 398

11.3.2 定义异步表单 398

11.3.3 实现Action 400

11.3.4 实现服务器响应页面 402

11.4 基于Dojo的pub-sub事件模型 403

11.4.1 pub-sub的原理 404

11.4.2 pub-sub的示例 405

11.4.3 阻止请求 407

11.5 基于Dojo的Ajax标签 407

11.5.1 div标签 407

11.5.2 submit和a标签 414

11.5.3 autocompleter标签 419

11.5.4 tabbedpanel标签 426

11.5.5 datetimepicker 430

11.5.6 tree和treenode 432

11.5.7 textarea 435

11.5.8 bind 436

11.6 基于JSON插件的Ajax实现 438

11.6.1 JSON的基本知识 438

11.6.2 安装Struts 2的JSON插件 441

11.6.3 实现Action逻辑 441

11.6.4 实现JSP页面 443

11.7 本章小结 446

第12章 Struts 2的REST支持 447

12.1 Codebehind插件和零配置 448

12.1.1 自动搜索Action 448

12.1.2 使用Annotation指定命名空间、父包和结果映射 449

12.2 Convention插件和零配置 452

12.2.1 搜索Action 453

12.2.2 按约定映射Action 454

12.2.3 按约定映射Result 456

12.2.4 Action链的约定 459

12.2.5 自动重加载映射 461

12.3 Convention插件的相关常量 461

12.4 Convention的Annotation 462

12.4.1 Action配置相关的Annotation 463

12.4.2 Result配置相关的Annotation 464

12.4.3 包和命名空间相关的Annotation 466

12.4.4 异常处理相关的Annotation 466

12.4.5 拦截器配置相关的Annotation 468

12.5 REST简介 468

12.5.1 资源和标识符 469

12.5.2 操作资源的方式 470

12.6 Struts 2的REST支持 471

12.6.1 RestActionMapper简介 471

12.6.2 安装REST插件 472

12.6.3 实现支持REST的Action类 473

12.6.4 实现视图层 478

12.7 本章小结 481

第13章 使用FreeMarker作为表现层 482

13.1 体验FreeMarker 483

13.1.1 下载和安装FreeMarker 483

13.1.2 在Java程序中使用FreeMarker 483

13.1.3 在Web应用中使用FreeMarker 485

13.2 FreeMarker的模板文件 489

13.2.1 模板结构 489

13.2.2 FTL指令规则 490

13.2.3 插值规则 490

13.3 表达式 492

13.3.1 直接指定值 492

13.3.2 输出变量值 494

13.3.3 字符串操作 496

13.3.4 集合连接运算符 497

13.3.5 Map连接运算符 497

13.3.6 算术运算符 498

13.3.7 比较运算符 499

13.3.8 逻辑运算符 499

13.3.9 内建函数 499

13.3.10 空值处理运算符 500

13.3.11 运算符优先级 500

13.4 FreeMarker的常用指令 501

13.4.1 if指令 501

13.4.2 switch、case、default、break指令 502

13.4.3 list、break指令 502

13.4.4 include指令 503

13.4.5 import指令 503

13.4.6 noparse指令 503

13.4.7 escape、noescape指令 504

13.4.8 assign指令 505

13.4.9 setting指令 506

13.4.10 macro、nested、return指令 506

13.5 使用FreeMarker作为Struts 2的视图技术 509

13.5.1 在FreeMarker模板中使用Struts 2标签 509

13.5.2 使用Freemarker Result 512

13.5.3 解析模板中的变量 514

13.5.4 访问Servlet/JSP范围的值 516

13.6 本章小结 517

第14章 整合Spring 518

14.1 Spring简介 519

14.1.1 Spring的起源和核心 519

14.1.2 使用Spring的IoC容器 521

14.2 Struts 2插件 524

14.2.1 插件概述 524

14.2.2 插件开发概述 526

14.3 使用Spring插件完成整合 527

14.3.1 整合Spring前的准备工作 528

14.3.2 整合Spring的思考 531

14.4 让Spring管理控制器 532

14.4.1 整合流程 532

14.4.2 从页面请求开始 533

14.4.3 实现控制器逻辑 533

14.4.4 实现业务逻辑 535

14.5 使用自动装配 537

14.5.1 指定自动装配 537

14.5.2 修改配置文件 538

14.5.3 改变自动装配策略 539

14.6 本章小结 540

第15章 整合JSF 541

15.1 JSF简介 541

15.1.1 JSF概述 542

15.1.2 JSF和Struts 2的对比 542

15.2 使用MyFaces 543

15.2.1 下载和安装MyFaces 543

15.2.2 从输入页面开始 545

15.2.3 在Web应用中配置MyFaces 547

15.2.4 实现后台Bean 548

15.2.5 定义导航规则 549

15.3 安装JSF插件 551

15.4 使用JSF插件 552

15.4.1 实现业务逻辑组件 553

15.4.2 列出全部图书 556

15.4.3 添加/修改图书 558

15.5 整合JSF的思考 563

15.6 本章小结 564

第16章 整合SiteMesh 565

16.1 SiteMesh简介 565

16.1.1 SiteMesh概述 566

16.1.2 下载和安装SiteMesh 567

16.1.3 定义装饰器页面 569

16.1.4 定义原始页面 570

16.1.5 更复杂的装饰器页面 572

16.2 使用SiteMesh插件 575

16.2.1 安装SiteMesh插件 575

16.2.2 在Struts 2中使用SiteMesh 577

16.3 本章小结 579

第17章 整合JasperReports 580

17.1 JasperReports简介 581

17.1.1 下载和安装JasperReports 581

17.1.2 JasperReports初探 582

17.1.3 JasperReports的开发流程 588

17.1.4 解决PDF报表的中文问题 589

17.2 动态报表 590

17.2.1 带参数的报表 590

17.2.2 带查询的报表 594

17.2.3 以VO集合作为数据源的动态报表 600

17.3 使用iReport设计报表 605

17.3.1 下载和安装iReport 605

17.3.2 使用iReport 607

17.3.3 建立数据源 608

17.3.4 设计报表布局 611

17.4 安装JasperReports插件 614

17.5 使用JasperReports报表 614

17.5.1 创建生成报表的Action 615

17.5.2 配置生成JasperReports报表的Action 616

17.5.3 生成JasperReports报表 617

17.6 本章小结 618

第18章 整合JFreeChart 619

18.1 JFreeChart简介 620

18.1.1 JFreeChart的下载和安装 620

18.1.2 使用JFreeChart 621

18.1.3 JFreeChart开发步骤 623

18.2 JFreeChart的常用统计图表 624

18.2.1 柱状图 625

18.2.2 折线图 629

18.2.3 时间顺序图 630

18.3 在网页中生成带交互功能的统计图 633

18.4 安装JFreeChart插件 638

18.5 在Struts 2应用中使用JFreeChart 639

18.5.1 创建Action类 639

18.5.2 配置Action 641

18.6 本章小结 642

第19章 整合Hibernate 643

19.1 Hibernate概述 644

19.1.1 Hibernate的作用 644

19.1.2 Hibernate的优势 646

19.2 Hibernate开发入门 646

19.2.1 Hibernate下载和安装 646

19.2.2 使用Hibernate保存记录 647

19.2.3 使用Hibernate查询记录 652

19.3 Struts 2整合Hibernate的思考 654

19.3.1 自定义的整合方案 654

19.3.2 整合方案的实现策略 656

19.4 整合示例 656

19.4.1 持久层设计 656

19.4.2 DAO层设计 660

19.4.3 业务逻辑层设计 663

19.4.4 初始化组件工厂 665

19.4.5 控制器实现 666

19.5 整合后的思考和Spring框架 668

19.6 本章小结 669

第20章 “零配置”案例:注册登录系统 670

20.1 系统概述 671

20.1.1 系统功能简介 671

20.1.2 系统总体设计 671

20.2 实现Hibernate持久层 672

20.2.1 编写持久化PO类 672

20.2.2 编写映射文件 673

20.3 实现DAO层 674

20.3.1 管理SessionFactory 674

20.3.2 编写DAO接口 675

20.3.3 实现DAO组件 677

20.3.4 配置DAO组件 679

20.4 实现业务逻辑层 679

20.4.1 定义业务逻辑组件接口 679

20.4.2 提供业务逻辑组件实现类 680

20.4.3 配置业务逻辑组件 682

20.5 使用Struts 2 683

20.5.1 整合Struts 2和Spring 683

20.5.2 处理登录 685

20.5.3 图形验证码 689

20.5.4 使用Ajax验证用户名 692

20.5.5 注册新用户 696

20.6 使用SiteMesh装饰页面 699

20.7 本章小结 700

第21章 电子拍卖系统 701

21.1 系统功能简介和架构设计 702

21.1.1 系统功能简介 702

21.1.2 系统架构设计 702

21.1.3 相关技术介绍 703

21.2 持久层设计 706

21.2.1 系统实体 706

21.2.2 系统E-R图和数据表 707

21.2.3 实现Hibernate PO 709

21.2.4 管理SessionFactory 718

21.3 实现系统DAO层 720

21.3.1 DAO的基础配置 721

21.3.2 实现系统DAO组件 721

21.3.3 配置系统DAO组件 728

21.4 实现业务逻辑层 729

21.4.1 定义业务逻辑组件接口 730

21.4.2 依赖注入DAO组件 732

21.4.3 业务逻辑组件中的异常处理 733

21.4.4 处理用户竞价 735

21.4.5 判断拍卖物品状态 737

21.4.6 事务管理 740

21.4.7 配置业务层组件 741

21.5 实现系统Web层 744

21.5.1 配置Struts 2的核心Filter 744

21.5.2 处理用户登录 745

21.5.3 图形验证码 749

21.5.4 Web层的异常处理 750

21.5.5 登录控制 751

21.5.6 添加物品 753

21.5.7 处理用户竞价 760

21.6 使用SiteMesh页面装饰 766

21.6.1 在Struts 2中整合SiteMesh页面装饰 766

21.6.2 定义页面装饰 767

21.7 本章小结 770