当前位置:首页 > 工业技术
Struts 2 权威指南 基于WebWork核心的MVC开发
Struts 2 权威指南 基于WebWork核心的MVC开发

Struts 2 权威指南 基于WebWork核心的MVC开发PDF电子书下载

工业技术

  • 电子书积分:20 积分如何计算积分?
  • 作 者:李刚编著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2007
  • ISBN:7121048531
  • 页数:715 页
图书介绍:本书所介绍的Struts2已经完全超出了Struts1框架原有的高度,Struts2建立在Struts1和WebWork两个框架整合的基础之上,因此提供了更多优秀的机制。虽然Struts1目前还未被完全淘汰,但Struts1所表现出来的缺陷已经处处制约着开发者的手脚。在2007年上半年,Struts2终于在众多开发者期盼中,发布了第一个稳定版本:2.0.6。为了让众多Struts学习、工作者快速掌握Struts2的开发,笔者精心编著了本书。本书按Struts2的架构体系,细致地介绍了Struts2各个知识点。在介绍过程中,笔者依照读者的学习规律,首先介绍基本概念和基本操作,然后对内容进行深入讲解。笔者在介绍Struts2框架时,既照顾到Struts2初学者的能力,对每个知识点都给出简单的快速上手的示例;同时也考虑到开发者在日后开发中可能遇到的问题,详细讲解了每个知识点的各种用法,本书覆盖到Struts2 近80%的API。因此,本书完全可以作为Struts2框架的权威手册,以供开发者在实际开发过程中参考。本书最后配备了几个常用场景的实例,通过实例演示了Struts2框架的用法,希望读者
《Struts 2 权威指南 基于WebWork核心的MVC开发》目录

第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框架 7

1.2 Struts 2的起源和背景 8

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

1.2.2 WebWork简介 11

1.2.3 Struts 2起源 15

1.3 Struts 2体系介绍 15

1.3.1 Struts 2框架架构 15

1.3.2 Struts 2的配置文件 16

1.3.3 Strut 2的标签库 17

1.3.4 Struts 2的控制器组件 18

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应用 26

2.3.1 创建Web应用 26

2.3.2 增加Struts 2功能 27

2.4 实现控制器 28

2.4.1 实现控制器类 28

2.4.2 配置Action 29

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

2.5 改进控制器 31

2.5.1 实现Action接口 31

2.5.2 跟踪用户状态 33

2.5.3 添加处理信息 34

2.5.4 输出处理信息 36

2.6 改进视图组件 38

2.6.1 改善输出页面 38

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

2.7 完成程序国际化 41

2.7.1 定义国际化资源文件 41

2.7.2 加载资源文件 42

2.7.3 输出国际化信息 43

2.8 增加数据校验 45

2.8.1 继承ActionSupport 45

2.8.2 使用Struts 2的校验框架 48

2.9 本章小结 49

第3章 Struts 2基础 50

3.1 Struts 1的MVC实现 50

3.1.1 下载和安装Struts 1框架 51

3.1.2 实现ActionForm 51

3.1.3 实现Action 53

3.1.4 配置Struts 1的Action 54

3.1.5 完成应用流程 56

3.2 WebWork的MVC实现 57

3.2.1 WebWork的下载和安装 57

3.2.2 实现Action 58

3.2.3 配置Action 61

3.2.4 完成数据校验 63

3.2.5 完成应用流程 64

3.3 在Eclipse中开发Struts 2 65

3.3.1 创建Web应用 65

3.3.2 增加Struts 2支持 67

3.3.3 部署Struts 2应用 68

3.3.4 增加应用的Action 69

3.4 Struts 2的基本流程 71

3.4.1 核心控制器:FilterDispatcher 71

3.4.2 业务控制器 72

3.4.3 Struts 2的模型组件 72

3.4.4 Struts 2的视图组件 72

3.4.5 Struts 2的运行流程 73

3.5 Struts 2的基本配置 73

3.5.1 配置web.xml文件 73

3.5.2 struts.xml配置文件 75

3.5.3 struts.properties配置文件 79

3.5.4 struts.xml文件结构 82

3.6 本章小结 86

第4章 深入Struts 2 87

4.1 深入Struts 2的配置文件 87

4.1.1 Bean配置 88

4.1.2 常量配置 89

4.1.3 包配置 91

4.1.4 命名空间配置 93

4.1.5 包含配置 94

4.1.6 拦截器配置 95

4.2 Struts 2的Action 96

4.2.1 实现Action实现类 96

4.2.2 Action访问Servlet API 100

4.2.3 Action直接访问Servlet API 104

4.2.4 配置Action 106

4.2.5 动态方法调用 107

4.2.6 为action元素指定method属性 110

4.2.7 使用通配符 111

4.2.8 默认Action 116

4.3 处理结果 117

4.3.1 处理结果的改进 117

4.3.2 配置结果 118

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

4.3.4 plaintext结果类型 122

4.3.5 redirect结果类型 124

4.3.6 redirect-action结果类型 125

4.3.7 动态结果 126

4.3.8 请求参数决定结果 127

4.3.9 全局结果 129

4.4 属性驱动和模型驱动 130

4.4.1 模型的作用 130

4.4.2 使用模型驱动 132

4.5 Struts 2的异常机制 135

4.5.1 Struts 2的异常处理哲学 135

4.5.2 声明式异常捕捉 137

4.5.3 输出异常信息 139

4.6 本章小结 141

第5章 Struts 2的类型转换 142

5.1 类型转换的意义 142

5.1.1 表现层数据处理 143

5.1.2 类型转换 143

5.2 使用类型转换器 146

5.2.1 系统需求 147

5.2.2 实现类型转换器 148

5.2.3 局部类型转换器 151

5.2.4 全局类型转换器 152

5.2.5 基于Struts 2的类型转换器 154

5.2.6 数组属性的类型转换器 155

5.2.7 集合属性的类型转换器 158

5.3 另一种转换方式 161

5.4 Struts 2的Collection和Map支持 164

5.4.1 指定集合元素的类型 164

5.4.2 指定集合元素的索引属性 165

5.5 Struts 2内建的类型转换器 167

5.6 类型转换中错误处理 168

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

5.6.2 处理类型转换错误 169

5.6.3 输出类型转换错误 170

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

5.7 本章小结 173

第6章 文件的上传和下载 174

6.1 文件上传的原理 175

6.1.1 表单元素的enctype属性 175

6.1.2 手动上传 178

6.1.3 使用上传框架完成上传 180

6.2 Struts 2的文件上传 185

6.2.1 Struts 2提供的文件上传支持 185

6.2.2 实现文件上传的Action 186

6.2.3 配置文件上传的Action 189

6.2.4 手动实现文件过滤 191

6.2.5 拦截器实现文件过滤 194

6.2.6 输出错误提示 195

6.2.7 文件上传的常量配置 196

6.3 同时上传多个文件 197

6.3.1 使用数组同时上传多个文件 197

6.3.2 使用List同时上传多个文件 200

6.4 文件下载 202

6.4.1 使用Struts 2控制文件下载 202

6.4.2 实现文件下载的Action 203

6.4.3 配置Action 204

6.4.4 下载前的授权控制 205

6.5 本章小结 206

第7章 Struts 2的拦截器 207

7.1 理解拦截器 208

7.1.1 理解DRY规则 208

7.1.2 拦截器的意义 209

7.1.3 拦截器的实现原理 210

7.1.4 拦截器和AOP的关系 214

7.1.5 拦截器在Struts 2中的作用 215

7.2 拦截器配置初步 216

7.2.1 配置拦截器 216

7.2.2 使用拦截器 218

7.2.3 默认拦截器 219

7.3 使用自定义拦截器 221

7.3.1 实现拦截器类 222

7.3.2 使用拦截器 223

7.4 深入拦截器 225

7.4.1 方法过滤 225

7.4.2 拦截器的执行顺序 227

7.4.3 拦截结果的监听器 229

7.4.4 覆盖拦截器中特定拦截器的参数 230

7.5 Struts 2内建的拦截器 233

7.5.1 内建拦截器 233

7.5.2 struts-default.xml中的拦截器配置 234

7.6 使用拦截器完成权限控制 238

7.6.1 实现权限控制拦截器 238

7.6.2 配置权限控制拦截器 239

7.7 本章小结 240

第8章 Struts 2的输入校验 242

8.1 输入校验概述 242

8.1.1 为什么需要输入校验 243

8.1.2 客户端校验 244

8.1.3 服务器端校验 246

8.1.4 类型转换和输入校验 250

8.2 手动完成输入校验 251

8.2.1 重写validate()方法 251

8.2.2 重写validateXxx()方法 254

8.2.3 Struts 2的输入校验流程 256

8.3 基本输入校验 257

8.3.1 编写校验规则文件 257

8.3.2 国际化提示信息 259

8.3.3 使用客户端校验 261

8.3.4 校验文件的搜索规则 265

8.4 校验器的配置风格 267

8.4.1 字段校验器配置风格 267

8.4.2 非字段校验器配置风格 268

8.4.3 短路校验器 269

8.4.4 校验顺序和短路 271

8.5 内建校验器 272

8.5.1 注册校验器 272

8.5.2 必填校验器 273

8.5.3 必填字符串校验器 274

8.5.4 整数校验器 275

8.5.5 日期校验器 276

8.5.6 表达式校验器 277

8.5.7 字段表达式校验器 277

8.5.8 邮件地址校验器 278

8.5.9 网址校验器 279

8.5.10 Visitor校验器 279

8.5.11 转换校验器 283

8.5.12 字符串长度校验器 283

8.5.13 正则表达式校验器 284

8.6 本章小结 285

第9章 Struts 2的国际化 286

9.1 程序国际化简介 287

9.1.1 程序国际化的意义 287

9.1.2 Java国际化的思路 287

9.1.3 Java支持的语言和国家 288

9.1.4 完成程序国际化 289

9.1.5 带占位符的消息 291

9.1.6 使用类文件代替资源文件 292

9.2 Struts 2的国际化入门 293

9.2.1 Struts 2中加载全局资源文件 293

9.2.2 访问国际化消息 294

9.2.3 输出带占位符的国际化消息 296

9.3 加载资源文件的方式 299

9.3.1 包范围资源文件 299

9.3.2 Action范围资源文件 300

9.3.3 临时指定资源文件 301

9.3.4 加载资源文件的顺序 302

9.4 允许用户自行选择程序语言 303

9.4.1 Struts 2国际化的运行机制 303

9.4.2 创建下拉列表框 304

9.4.3 选择程序语言 307

9.5 本章小结 308

第10章 Struts 2的标签库 309

10.1 Struts 2标签库概述 310

10.1.1 标签的优势 310

10.1.2 Struts 2的标签分类 311

10.2 Struts 2标签初步 312

10.2.1 使用Struts 2标签库的准备 312

10.2.2 Struts 2的OGNL 314

10.2.3 OGNL中的集合操作 316

10.2.4 Lambda(λ)表达式 317

10.3 控制标签 318

10.3.1 if/elseif/else标签 318

10.3.2 iterator标签 319

10.3.3 append标签 321

10.3.4 generator标签 323

10.3.5 merge标签 324

10.3.6 subset标签 325

10.3.7 sort标签 327

10.4 数据标签 329

10.4.1 action标签 329

10.4.2 bean标签 331

10.4.3 date标签 333

10.4.4 debug标签 334

10.4.5 include标签 335

10.4.6 param标签 336

10.4.7 push标签 337

10.4.8 set标签 337

10.4.9 url标签 339

10.4.10 property标签 340

10.5 主题和模板 340

10.5.1 选择主题 340

10.5.2 创建自定义主题 342

10.5.3 Struts 2内建主题 344

10.6 表单标签 345

10.6.1 表单标签的通用属性 345

10.6.2 表单标签的name和value属性 347

10.6.3 checkboxlist标签 348

10.6.4 combobox标签 350

10.6.5 datetimepicker标签 351

10.6.6 doubleselect标签 352

10.6.7 head标签 354

10.6.8 optiontransferselect标签 355

10.6.9 select标签 357

10.6.10 radio标签 357

10.6.11 optgroup标签 359

10.6.12 token标签 360

10.6.13 updownselect标签 360

10.7 非表单标签 362

10.7.1 actionerror和actionmessage标签 362

10.7.2 component标签 363

10.7.3 tree和treenode初步 365

10.8 本章小结 366

第11章 Struts 2的Ajax支持 367

11.1 Ajax概述 368

11.1.1 Ajax的起源和变革 368

11.1.2 Ajax的核心技术 371

11.2 Struts 2提供的Ajax支持 373

11.3 基于Ajax的输入校验 374

11.3.1 配置DWR的核心Servlet 375

11.3.2 设置页面的Ajax主题 376

11.3.3 设置校验规则 377

11.4 使用Ajax表单 378

11.4.1 设置表单的Ajax主题 379

11.4.2 实现Action 380

11.4.3 实现服务器响应页面 381

11.5 pub-sub的事件模型 382

11.5.1 pub-sub的原理 382

11.5.2 pub-sub的示例 384

11.5.3 阻止请求 385

11.6 常用的Ajax标签 386

11.6.1 div标签 386

11.6.2 a和submit标签 392

11.6.3 autocompleter标签 398

11.6.4 tabbedPanel标签 403

11.7 使用JSON插件实现Ajax 407

11.7.1 JSON的基本知识 407

11.7.2 为Struts 2安装JSON插件 410

11.7.3 实现Actio逻辑 411

11.7.4 实现JSP页面 413

11.8 本章小结 415

第12章 使用FreeMarker充当表现层 416

12.1 体验FreeMarker 417

12.1.1 在Java程序中使用FreeMarker 417

12.1.2 在Web应用中使用FreeMarker 419

12.2 FreeMarker的模板文件 421

12.2.1 模板结构 421

12.2.2 FTL指令规则 421

12.2.3 插值规则 422

12.3 表达式 423

12.3.1 直接指定值 423

12.3.2 输出变量值 425

12.3.3 字符串操作 427

12.3.4 集合连接运算符 428

12.3.5 Map连接运算符 428

12.3.6 算术运算符 429

12.3.7 比较运算符 429

12.3.8 逻辑运算符 430

12.3.9 内建函数 430

12.3.10 空值处理运算符 431

12.3.11 运算符优先级 431

12.4 FreeMarker的常用指令 431

12.4.1 if指令 432

12.4.2 switch、case、default、break指令 432

12.4.3 list、break指令 433

12.4.4 include指令 433

12.4.5 import指令 434

12.4.6 noparse指令 434

12.4.7 escape、noescape指令 434

12.4.8 assign指令 436

12.4.9 setting指令 437

12.4.10 macro、nested、retum指令 437

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

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

12.5.2 使用Freemarker Result 442

12.5.3 解析模板中的变量 444

12.5.4 访问Servlet/JSP范围对象 446

12.6 本章小结 448

第13章 整合Spring 449

13.1 Spring简介 450

13.1.1 Spring的起源和核心 450

13.1.2 使用Spring的IoC容器 452

13.2 Struts 2插件 455

13.2.1 插件概述 455

13.2.2 插件开发概述 456

13.3 使用Spring插件完成整合 458

13.3.1 整合Spring前的准备工作 458

13.3.2 整合Spring的思考 461

13.4 让Spring管理控制器 462

13.4.1 整合流程 462

13.4.2 从页面请求开始 463

13.4.3 实现控制器逻辑 463

13.4.4 实现业务逻辑 465

13.5 使用自动装配 467

13.5.1 指定自动装配 467

13.5.2 修改配置文件 468

13.5.3 改变自动装配策略 469

13.6 本章小结 470

第14章 整合JSF 471

14.1 JSF简介 471

14.1.1 JSF概述 472

14.1.2 JSF和Struts 2的对比 472

14.2 使用MyFaces 473

14.2.1 下载和安装MyFaces 473

14.2.2 从输入页面开始 475

14.2.3 在Web应用中配置MyFaces 477

14.2.4 实现后台Bean 478

14.2.5 定义导航规则 480

14.3 安装JSF插件 482

14.4 使用JSF插件 483

14.4.1 实现业务逻辑组件 483

14.4.2 列出全部图书 487

14.4.3 添加/修改图书 489

14.5 整合JSF的思考 494

14.6 本章小结 496

第15章 整合SiteMesh 497

15.1 SiteMesh简介 498

15.1.1 SiteMesh概述 498

15.1.2 下载和安装SiteMesh 498

15.1.3 定义装饰器页面 501

15.1.4 定义原始页面 503

15.1.5 更复杂的装饰器页面 504

15.2 使用SiteMesh插件 507

15.2.1 安装SiteMesh插件 507

15.2.2 在Struts 2中使用SiteMesh 509

15.3 使用FreeMarker模板作为装饰器 512

15.3.1 使用FreeMarkerPageFilter 512

15.3.2 定义FreeMarker装饰器 513

15.3.3 使用SiteMesh标签 515

15.4 本章小结 516

第16章 整合JasperReports 517

16.1 JasperReports简介 518

16.1.1 下载和安装JasperReports 518

16.1.2 JasperReports初探 519

16.1.3 JasperReports的开发流程 525

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

16.2 动态报表 527

16.2.1 带参数的报表 527

16.2.2 带查询的报表 532

16.3 使用iReport设计报表 539

16.3.1 下载和安装iReport 539

16.3.2 使用iReport 541

16.3.3 建立数据库连接 542

16.3.4 设计报表布局 544

16.4 安装JasperReports插件 546

16.5 使用JasperReports报表 547

16.5.1 创建生成报表的Action 547

16.5.2 配置生成JasperReports报表的Action 548

16.5.3 生成JasperReports报表 549

16.6 本章小结 550

第17章 整合JFreeChart 552

17.1 JFreeChart简介 553

17.1.1 JFreeChart的下载和安装 553

17.1.2 使用JFreeChart 554

17.1.3 JFreeChart开发步骤 556

17.2 JFreeChart的常用统计图表 557

17.2.1 柱状图 557

17.2.2 折线图 561

17.2.3 时间顺序图 562

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

17.4 安装JFreeChart插件 569

17.5 在Struts 2应用中使用JFreeChart 570

17.5.1 创建Action类 570

17.5.2 配置Action 571

17.6 本章小结 573

第18章 整合Struts 1 574

18.1 整合Struts 1的概述 574

18.2 安装Struts 1插件 575

18.2.1 Struts 1插件分析 575

18.2.2 安装Struts 1插件 577

18.3 整合Struts 1 577

18.3.1 从请求开始 577

18.3.2 管理Struts 1的ActionForm 578

18.3.3 管理Struts 1的Action 579

18.3.4 管理无需ActionForm的Action 582

18.4 使用Struts 1的输入校验 583

18.4.1 重写validate方法 583

18.4.2 使用Common-Validator校验 586

18.5 本章小结 589

第19章 整合Hibernate 590

19.1 Hibernate概述 591

19.1.1 Hibernate的作用 591

19.1.2 Hibernate的优势 593

19.2 Hibernate开发入门 593

19.2.1 Hibernate下载和安装 593

19.2.2 使用Hibernate保存记录 594

19.2.3 使用Hibernate查询记录 598

19.3 Struts 2整合Hibernate的思考 600

19.3.1 自定义的整合方案 601

19.3.2 整合方案的实现策略 602

19.4 整合示例 602

19.4.1 持久层设计 602

19.4.2 DAO层设计 606

19.4.3 业务逻辑层设计 608

19.4.4 控制器实现 611

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

19.6 本章小结 614

第20章 注册登录系统 615

20.1 系统概述 616

20.1.1 系统功能简介 616

20.1.2 系统总体设计 616

20.2 实现Hibernate持久层 617

20.2.1 编写持久化PO类 617

20.2.2 编写映射文件 618

20.3 实现DAO层 619

20.3.1 管理SessionFactory 619

20.3.2 编写DAO接口 620

20.3.3 实现DAO组件 622

20.3.4 配置DAO组件 624

20.4 实现业务逻辑层 624

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

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

20.4.3 配置业务逻辑组件 627

20.5 使用Struts 2 629

20.5.1 整合Struts 2和Spring 629

20.5.2 处理登录 630

20.5.3 图形验证码 634

20.5.4 异常控制 638

20.5.5 使用Ajax验证用户名 638

20.5.6 注册新用户 641

20.6 使用SiteMesh装饰页面 644

20.7 本章小结 646

第21章 电子拍卖系统 647

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

21.1.1 系统功能简介 648

21.1.2 系统架构设计 648

21.1.3 相关技术介绍 649

21.2 持久层设计 652

21.2.1 系统实体 652

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

21.2.3 实现Hibernate PO 655

21.2.4 管理SessionFactory 664

21.3 实现系统DAO层 665

21.3.1 DAO的基础配置 667

21.3.2 实现系统DAO组件 667

21.3.3 配置系统DAO组件 674

21.4 实现业务逻辑层 675

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

21.4.2 依赖注入DAO组件 677

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

21.4.4 处理用户竞价 680

21.4.5 判断拍卖物品状态 682

21.4.6 事务管理 685

21.4.7 配置业务层组件 686

21.5 实现系统Web层 689

21.5.1 配置Struts 2的核心Filter 689

21.5.2 处理用户登录 690

21.5.3 图形验证码 694

21.5.4 Web层的异常处理 695

21.5.5 登录控制 696

21.5.6 添加物品 698

21.5.7 处理用户竞价 705

21.6 使用SiteMesh页面装饰 711

21.6.1 在Struts2中整合SiteMesh页面装饰 711

21.6.2 定义页面装饰 712

21.7 本章小结 715

返回顶部