《Struts 2.x权威指南 第3版》PDF下载

  • 购买积分:19 如何计算积分?
  • 作  者:李刚编著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2012
  • ISBN:9787121180477
  • 页数:658 页
图书介绍:本书是《Struts 2权威指南》的第3版,本书介绍了Struts 2最新版本:Struts 2.3.1.2。本书全面介绍了Struts 2框架的各知识点,从Struts 2框架的MVC原理、Struts 2的处理机制开始讲起,全面覆盖了Struts 2的Action开发、Action配置管理、Result配置管理、力求让读者不仅可以掌握Struts 2理论知识,也能真正步入实际开发殿堂。

第1章Struts 2概述 1

1.1 MVC思想概述 2

1.1.1 Web技术的发展 2

1.1.2 Model 1和Model 2 4

1.1.3 MVC思想及其优势 5

1.1.4常用的MVC框架 6

1.2 Struts 1的缺陷与现状 8

1.2.1支持的表现层技术单一 8

1.2.2与Servlet API严重耦合 8

1.2.3代码依赖于Struts 1 API 9

1.3 Struts 2的优势与体系 9

1.3.1 Struts 2的优势 9

1.3.2 Struts 2架构 11

1.3.3 Struts 2的配置文件 11

1.3.4 Struts 2的标签库 12

1.3.5 Struts 2的控制器组件 13

1.4本章小结 14

第2章Struts 2的HelloWorld 15

2.1下载和安装Struts 2框架 16

2.2从用户请求开始 17

2.3创建Struts 2的Web应用 19

2.3.1创建Web应用 19

2.3.2增加Struts 2功能 20

2.4实现控制器 21

2.4.1实现控制器类 21

2.4.2配置Action 22

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

2.5改进控制器 24

2.5.1实现Action接口 24

2.5.2跟踪用户状态 25

2.5.3添加处理信息 26

2.5.4输出处理信息 28

2.6改进视图组件 29

2.6.1保护JSP页面 30

2.6.2改善输出页面 30

2.6.3使用UI标签简化表单页面 31

2.7完成程序国际化 32

2.7.1定义国际化资源文件 33

2.7.2加载资源文件 34

2.7.3输出国际化信息 35

2.8增加数据校验 36

2.8.1继承ActionSupport 37

2.8.2使用Struts 2的校验框架 39

2.9本章小结 40

第3章Struts 2核心技术 41

3.1在Eclipse中开发Struts 2 42

3.1.1创建Web应用 42

3.1.2增加Struts 2支持 44

3.1.3部署Struts 2应用 45

3.1.4增加应用的Action 46

3.2 Struts 2的基本流程 47

3.2.1核心控制器StrutsPrepareAndExecuteFilter 47

3.2.2业务控制器 48

3.2.3 Struts 2的模型组件 48

3.2.4 Struts 2的视图组件 49

3.2.5 Struts 2的运行流程 49

3.3 Struts 2的基本配置 50

3.3.1配置web.xml文件 50

3.3.2 struts.xml配置文件 51

3.3.3 struts.properties文件与常量配置 54

3.3.4 struts.xml文件结构 59

3.4深入Struts 2配置文件 61

3.4.1 Bean配置 61

3.4.2常量配置 62

3.4.3包配置 62

3.4.4命名空间配置 64

3.4.5包含配置 66

3.4.6拦截器配置 66

3.5 Struts 2的Action 67

3.5.1实现Action处理类 67

3.5.2 Action访问Servlet API 71

3.5.3 Action直接访问Servlet API 74

3.5.4配置Action 76

3.5.5配置Action的默认处理类 78

3.5.6动态方法调用 78

3.5.7为action元素指定method属性 81

3.5.8使用通配符 82

3.5.9配置默认的Action 87

3.6管理处理结果 87

3.6.1处理结果的改进 88

3.6.2配置结果 88

3.6.3 Struts 2支持的处理结果类型 89

3.6.4 chain结果类型 91

3.6.5 plainText结果类型 93

3.6.6 redirect结果类型 95

3.6.7 redirectAction结果类型 96

3.6.8动态结果 97

3.6.9请求参数决定结果 98

3.6.10全局结果 100

3.7属性驱动和模型驱动 101

3.7.1模型的作用 101

3.7.2使用模型驱动 103

3.8 Struts 2的异常机制 105

3.8.1 Struts 2的异常处理哲学 105

3.8.2声明式异常捕捉 107

3.8.3输出异常信息 110

3.9未知处理器 111

3.10本章小结 113

第4章Struts 2的类型转换 114

4.1类型转换的意义 115

4.1.1表现层数据处理 115

4.1.2传统的类型转换 116

4.2 Struts 2内建的类型转换器 118

4.3基于OGNL的类型转换 120

4.3.1使用OGNL转换成Map集合 121

4.3.2使用OGNL转换成List集合 122

4.4自定义类型转换器 123

4.4.1系统需求 123

4.4.2实现类型转换器 125

4.4.3局部类型转换器 127

4.4.4全局类型转换器 128

4.4.5局部类型转换器和全局类型转换器的说明 130

4.4.6基于Struts 2的类型转换器 130

4.4.7数组属性的类型转换器 132

4.4.8集合属性的类型转换器 135

4.5集合类型转换的高级特性 137

4.5.1指定集合元素的类型 137

4.5.2为Set集合的元素指定索引属性 138

4.6类型转换中的错误处理 140

4.6.1类型转换的错误处理流程 140

4.6.2处理类型转换错误 142

4.6.3输出类型转换错误 142

4.6.4处理集合属性的转换错误 145

4.7本章小结 147

第5章Struts 2的输入校验 148

5.1输入校验概述 149

5.1.1为什么需要输入校验 149

5.1.2客户端校验 150

5.1.3服务器端校验 152

5.1.4类型转换和输入校验 155

5.2基本输入校验 156

5.2.1编写校验规则文件 156

5.2.2国际化提示信息 159

5.2.3使用客户端校验 161

5.3校验器的配置风格 164

5.3.1字段校验器配置风格 164

5.3.2非字段校验器配置风格 165

5.3.3短路校验器 166

5.3.4校验顺序和短路 167

5.4校验文件的搜索规则 168

5.5内建校验器 170

5.5.1注册校验器 170

5.5.2必填校验器 172

5.5.3必填字符串校验器 172

5.5.4整数校验器 173

5.5.5日期校验器 174

5.5.6表达式校验器 175

5.5.7字段表达式校验器 175

5.5.8邮件地址校验器 176

5.5.9网址校验器 176

5.5.10 Visitor校验器 177

5.5.11转换校验器 180

5.5.12字符串长度校验器 181

5.5.13正则表达式校验器 181

5.6基于Annotation的输入校验 182

5.7手动完成输入校验 184

5.7.1重写validate方法 184

5.7.2重写validateXxx方法 185

5.7.3 Struts 2的输入校验流程 186

5.8本章小结 188

第6章 上传和下载文件 189

6.1文件上传的原理 190

6.1.1表单元素的enctype属性 190

6.1.2手动上传 193

6.1.3使用Servlet 3.0 API完成上传 194

6.2 Struts 2的文件上传 197

6.2.1 Struts 2的文件上传支持 197

6.2.2实现文件上传的Action 197

6.2.3配置文件上传的Action 200

6.2.4手动实现文件过滤 201

6.2.5拦截器实现文件过滤 203

6.2.6输出错误提示 205

6.2.7文件上传的常量配置 206

6.3使用Pell上传 206

6.4同时上传多个文件 207

6.4.1使用数组同时上传多个文件 208

6.4.2使用List同时上传多个文件 210

6.5使用Struts 2控制文件下载 212

6.5.1实现文件下载的Action 212

6.5.2配置Action 214

6.5.3下载前的授权控制 214

6.6本章小结 216

第7章Struts 2的国际化 217

7.1程序国际化简介 218

7.1.1程序国际化的意义 218

7.1.2 Java国际化的思路 219

7.1.3 Java支持的国家和语言 219

7.1.4完成程序国际化 220

7.1.5使用MessageFormat处理带占位符的消息 222

7.2 Struts 2的国际化支持 224

7.2.1 Struts 2的国际化 224

7.2.2视图页面的国际化 224

7.2.3 Action的国际化 225

7.2.4使用包范围的国际化资源 227

7.2.5使用全局国际化资源 228

7.2.6输出带占位符的国际化消息 231

7.2.7加载资源文件的顺序 232

7.3允许用户自行选择程序语言 233

7.3.1 Struts 2国际化机制的原理 234

7.3.2创建下拉列表框 235

7.3.3选择程序语言 237

7.4本章小结 238

第8章Struts 2的标签库 239

8.1 Struts 2标签库概述 240

8.1.1标签的优势 240

8.1.2 Struts 2的标签分类 241

8.2 Struts 2标签入门 242

8.2.1使用Struts 2标签的准备 242

8.2.2 Struts 2的OGNL表达式语言 243

8.2.3 OGNL中的集合操作 245

8.2.4访问静态成员 246

8.2.5 Lambda(λ)表达式 246

8.3控制标签 247

8.3.1 if/elseif/else标签 247

8.3.2 iterator标签 248

8.3.3 append标签 250

8.3.4 generator标签 252

8.3.5 merge标签 253

8.3.6 subset标签 254

8.3.7 sort标签 256

8.4数据标签 258

8.4.1 action标签 258

8.4.2 bean标签 260

8.4.3 date标签 262

8.4.4 debug标签 263

8.4.5 i18n标签 263

8.4.6 include标签 263

8.4.7 param标签 264

8.4.8 property标签 264

8.4.9 push标签 265

8.4.10 set标签 265

8.4.11 text标签 267

8.4.12 url标签 267

8.5主题和模板 269

8.5.1选择主题 269

8.5.2自定义主题 271

8.6表单标签 273

8.6.1表单标签的通用属性 273

8.6.2表单标签的name和value属性 275

8.6.3 checkboxlist标签 275

8.6.4 combobox标签 277

8.6.5 doubleselect标签 278

8.6.6 head标签 280

8.6.7 optiontransferselect标签 280

8.6.8 select标签 282

8.6.9 radio标签 284

8.6.10 optgroup标签 284

8.6.11 token标签 285

8.6.12 updownselect标签 287

8.7非表单标签 288

8.7.1 actionerror和actionmessage标签 289

8.7.2 component标签 289

8.8本章小结 291

第9章Struts 2的拦截器 292

9.1理解拦截器 293

9.1.1理解DRY规则 293

9.1.2拦截器的意义 295

9.1.3拦截器的实现原理 297

9.1.4拦截器和AOP的关系 300

9.1.5拦截器在Struts 2中的作用 301

9.2 Struts 2内建拦截器介绍 303

9.2.1 Struts 2内建拦截器 303

9.2.2 struts-default.xml里配置的拦截器 304

9.3拦截器配置初步 308

9.3.1配置拦截器 308

9.3.2使用拦截器 310

9.3.3配置默认的拦截器 311

9.4开发自己的拦截器 313

9.4.1实现拦截器类 313

9.4.2使用拦截器 314

9.4.3拦截器和Struts 2插件的关系 316

9.5深入拦截器编程 317

9.5.1拦截方法的拦截器 317

9.5.2拦截器的执行顺序 319

9.5.3拦截结果的监听器 321

9.5.4覆盖拦截器栈里特定拦截器的参数 322

9.6拦截器应用示例:实现权限控制 323

9.6.1实现拦截器类 323

9.6.2配置权限控制拦截器 324

9.7本章小结 326

第10章Struts 2的Ajax支持 327

10.1 Struts 2基本的Ajax支持 328

10.1.1 Ajax技术概述 328

10.1.2使用stream结果类型实现Ajax 331

10.2基于Dojo的异步表单 334

10.2.1安装Dojo插件 335

10.2.2定义异步表单 335

10.2.3实现Action 337

10.2.4实现服务器响应页面 338

10.3基于Dojo的Pub-Sub事件模型 340

10.3.1 Pub-Sub原理 340

10.3.2 Pub-Sub示例 341

10.3.3阻止请求 343

10.4基于Dojo的Ajax标签 343

10.4.1 div标签 343

10.4.2 a和submit标签 349

10.4.3 autocompleter标签 354

10.4.4 tabbedpanel标签 360

10.4.5 datetimepicker标签 363

10.4.6 tree和treenode标签 365

10.4.7 textarea标签 369

10.4.8 bind标签 369

10.5基于JSON插件的Ajax实现 371

10.5.1 JSON的基本知识 371

10.5.2安装Struts 2的JSON插件 374

10.5.3实现Action逻辑 374

10.5.4实现JSP页面 376

10.6本章小结 377

第11章Convention插件与REST支持 378

11.1 Convention插件和零配置 379

11.1.1搜索Action 379

11.1.2按约定映射Action 380

11.1.3按约定映射Result 382

11.1.4 Action链的约定 385

11.1.5自动重加载映射 386

11.2 Convention插件的相关常量 386

11.3 Convention的Annotation 387

11.3.1 Action配置相关的Annotation 388

11.3.2 Result配置相关的Annotation 389

11.3.3包和命名空间相关的Annotation 391

11.3.4异常处理相关的Annotation 391

11.3.5拦截器配置相关的Annotation 392

11.4 REST简介 393

11.4.1资源和标识符 394

11.4.2操作资源的方式 394

11.5 Struts 2的REST支持 395

11.5.1 RestActionMapper简介 395

11.5.2安装REST插件 397

11.5.3实现支持REST的Action类 397

11.6本章小结 404

第12章FreeMarker详解 405

12.1体验FreeMarker 406

12.1.1下载和安装FreeMarker 406

12.1.2在Java程序中使用FreeMarker 407

12.1.3在Web应用中使用FreeMarker 408

12.2 FreeMarker的模板文件 411

12.2.1模板结构 412

12.2.2 FTL指令规则 412

12.2.3插值规则 413

12.3表达式 414

12.3.1直接指定值 414

12.3.2输出变量值 417

12.3.3字符串操作 418

12.3.4集合连接运算符 419

12.3.5 Map连接运算符 419

12.3.6算术运算符 420

12.3.7比较运算符 420

12.3.8逻辑运算符 421

12.3.9内建函数 421

12.3.10空值处理运算符 422

12.3.11运算符优先级 422

12.4 FreeMarker的常用指令 422

12.4.1 if指令 423

12.4.2 switch、 case、 default、 break指令 423

12.4.3 list、 break指令 424

12.4.4 include指令 424

12.4.5 import指令 425

12.4.6 noparse指令 425

12.4.7 escape、noescape指令 425

12.4.8 assign指令 426

12.4.9 setting指令 427

12.4.10 macro、 nested、 return指令 427

12.5使用FreeMarker作为Struts 2的视图技术 430

12.5.1在 FreeMarker模板中使用Struts 2标签 430

12.5.2使用Freemarker Result 433

12.5.3解析模板中的变量 434

12.5.4访问Servlet/JSP范围的值 436

12.6本章小结 438

第13章 整合Spring 439

13.1 Spring简介 440

13.1.1 Spring的起源和核心 440

13.1.2 Spring在Java EE应用中的作用 442

13.2 Struts 2插件 444

13.2.1插件概述 444

13.2.2插件开发概述 445

13.3使用Spring插件完成整合 447

13.3.1整合Spring前的准备工作 447

13.3.2整合Spring的思考 449

13.4让Spring管理控制器 450

13.4.1整合流程 450

13.4.2从页面请求开始 451

13.4.3实现控制器逻辑 451

13.4.4实现业务逻辑 453

13.5使用自动装配 454

13.5.1指定自动装配 454

13.5.2修改配置文件 455

13.5.3改变自动装配策略 456

13.6本章小结 458

第14章 整合JSF 459

14.1 JSF简介 460

14.1.1 JSF概述 460

14.1.2 JSF和Struts 2的对比 461

14.2使用MyFaces 461

14.2.1下载和安装MyFaces 462

14.2.2从输入页面开始 463

14.2.3在Web应用中配置 MyFaces 465

14.2.4实现后台Bean 466

14.2.5定义导航规则 467

14.3安装JSF插件 469

14.4使用JSF插件 470

14.4.1实现业务逻辑组件 470

14.4.2列出全部图书 473

14.4.3添加/修改图书 475

14.5整合JSF的思考 480

14.6本章小结 480

第15章 整合SiteMesh 481

15.1 SiteMesh简介 482

15.1.1 SiteMesh概述 482

15.1.2下载和安装SiteMesh 483

15.1.3定义装饰器页面 485

15.1.4定义原始页面 487

15.1.5更复杂的装饰器页面 488

15.2使用SiteMesh插件 490

15.2.1安装SiteMesh插件 491

15.2.2在Struts 2中使用SiteMesh 492

15.3本章小结 494

第16章 整合JasperReports 495

16.1 JasperReports简介 496

16.1.1下载和安装JasperReports 496

16.1.2开发JasperReports静态报表 497

16.1.3 JasperReports的开发流程 503

16.1.4解决PDF报表的中文问题 504

16.2动态报表 504

16.2.1带参数的报表 504

16.2.2带查询的报表 508

16.2.3以VO集合作为数据源的动态报表 512

16.3使用iReport设计报表 516

16.3.1下载和安装iReport 516

16.3.2使用iReport 518

16.3.3建立数据源 520

16.3.4设计报表布局 522

16.4安装JasperReports插件 525

16.5使用JasperReports报表 525

16.5.1创建生成报表的Action 525

16.5.2配置生成JasperReports报表的Action 526

16.5.3生成JasperReports报表 527

16.6本章小结 529

第17章 整合JFreeChart 530

17.1 JFreeChart简介 531

17.1.1 JFreeChart的下载和安装 531

17.1.2使用JFreeChart 532

17.1.3 JFreeChart开发步骤 534

17.2 JFreeChart的常用统计图表 535

17.2.1柱状图 536

17.2.2折线图 540

17.2.3时间顺序图 540

17.3在网页中生成带交互功能的统计图 542

17.4安装JFreeChart插件 547

17.5在Struts 2应用中使用JFreeChart 548

17.5.1创建Action类 548

17.5.2配置Action 550

17.5.3改进JFreeChart插件 551

17.5.4使用改进后的JFreeChart插件 554

17.6本章小结 555

第18章 整合Hibernate 556

18.1 Hibernate概述 557

18.1.1 ORM的功能与Hibernate 557

18.1.2流行的ORM框架简介 560

18.2 Struts 2整合Hibernate的思考 560

18.2.1自定义的整合方案 560

18.2.2整合方案的实现策略 561

18.3整合示例 562

18.3.1持久层设计 562

18.3.2 DAO层设计 565

18.3.3业务逻辑层设计 568

18.3.4初始化组件工厂 570

18.3.5控制器实现 571

18.4整合后的思考和Spring框架 572

18.5本章小结 573

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

19.1系统概述 575

19.1.1系统功能简介 575

19.1.2系统总体设计 576

19.2实现Hibernate持久层 576

19.3实现DAO层 577

19.3.1管理SessionFactory 578

19.3.2实现DAO基类 579

19.3.3实现系统DAO组件 580

19.3.4配置DAO组件 582

19.4实现业务逻辑层 582

19.4.1定义业务逻辑组件接口 582

19.4.2提供业务逻辑组件实现类 583

19.4.3配置业务逻辑组件 585

19.5使用Struts 2 586

19.5.1整合Struts 2和Spring 586

19.5.2处理登录 587

19.5.3图形验证码 591

19.5.4使用Ajax验证用户名 594

19.5.5注册新用户 597

19.6使用SiteMesh装饰页面 599

19.7本章小结 600

第20章 电子拍卖系统 601

20.1系统功能简介和架构设计 602

20.1.1系统功能简介 602

20.1.2系统架构设计 603

20.1.3相关技术介绍 604

20.2持久层设计 606

20.2.1系统实体 606

20.2.2系统E-R图和数据表 607

20.2.3实现Hibernate PO 609

20.2.4管理SessionFactory 616

20.3实现系统DAO层 617

20.3.1实现DAO基类 618

20.3.2实现系统DAO组件 619

20.3.3配置系统DAO组件 622

20.4实现业务逻辑层 624

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

20.4.2依赖注入DAO组件 626

20.4.3业务逻辑组件中的异常处理 627

20.4.4处理用户竞价 628

20.4.5判断拍卖物品状态 630

20.4.6事务管理 632

20.4.7配置业务层组件 633

20.5实现系统Web层 635

20.5.1配置Struts 2的核心Filter 636

20.5.2处理用户登录 637

20.5.3图形验证码 640

20.5.4 Web层的异常处理 641

20.5.5登录控制 642

20.5.6添加物品 644

20.5.7处理用户竞价 650

20.6使用SiteMesh页面装饰 655

20.6.1在Struts 2中整合SiteMesh页面装饰 655

20.6.2定义页面装饰 655

20.7本章小结 658