eclipse4.2创建JSF项目的问题

feng_lqwe 2012-09-19 05:44:56
我想用JSF+Spring+Hibernate开发一个小项目,权当学习JSF,但是在创建项目的时候遇到问题,

就是当加入jsf Capabilities的时候出现警告: At least one user library must be selected.
我不知道怎么弄,求解答!最好给个创建JSF项目的完整流程,谢谢!!!
...全文
134 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
lyyyl_110 2015-06-15
  • 打赏
  • 举报
回复
948277202@qq.com如果大神不介意,也给我来一份吧
oqqMrYu1234 2015-04-08
  • 打赏
  • 举报
回复
请问大神,还保存有jsf+spring+hibernate的案例吗? 1242399897@qq.com如有,谢谢
feng_lqwe 2012-09-20
  • 打赏
  • 举报
回复
居然没人回答?还好我自己解决了,没有导入jsf 的jar包问题。
ban_gun 2012-09-20
  • 打赏
  • 举报
回复
congratulations 祝贺你
中文名: 经典Java EE企业应用实战--基于WebLogic/JBoss的JSF+EJB 3+JPA整合开发 原名: 经典Java EE企业应用实战--基于WebLogic/JBoss的JSF+EJB 3+JPA整合开发 作者: 李刚 资源格式: PDF 版本: 第一版 出版社: 电子工业出版社书号: 9787121115349发行时间: 2010年8日 地区: 大陆 语言: 简体中文 简介: 内容简介:   本书是《轻量级java ee企业应用实战》的姊妹篇,《轻量级java ee企业应用实战》主要介绍以spring+hibernate为基础的java ee应用;本书则主要介绍以ejb 3+jpa为基础的java ee应用。ejb 3、jpa规范都属于sun公司所制订的java ee规范,因此把基于ejb 3+jpa的应用称为经典java ee架构,目前这种架构在java开发领域也有极大的市场占有率。   本书介绍了java ee规范的三大主要规范jsf、ejb 3和jpa,其中jsf是sun公司提供的jsf ri;ejb 3部分则包含session bean、message driven bean的详细介绍。所使用的应用服务器是jboss 5.1和weblogic 11g,详细介绍了这两种应用服务器的安装和使用,以及如何在两大主流服务器上安装、部署java ee应用。   本书内容主要包括三部分,第一部分介绍java ee开发的基础知识,以及如何搭建开发环境,包括安装jboss、weblogic应用服务器,以及如何使用svn、netbeans等。第二部分详细讲解了jsf ri、jta、jndi、rmi、jms、javamail、ejb 3的session bean、message driven bean、jpa、jax-ws 2、jaas等java ee知识,这部分知识以jsf+ejb 3+jpa整合开发为重点,通过使用netbeans ide工具上手,带领读者逐步深入jsf+ejb 3+jpa整合开发。这部分内容是笔者讲授“疯狂java实训”的培训讲义,也是本书的重点部分。第三部分提供了一个jsf+ejb 3+ jpa整合开发的项目:电子拍卖系统。这个项目包括5个实体,这5个实体之间具有复杂的关联关系,而且业务逻辑也相对复杂,希望让读者理论联系实际,真正将jsf+ejb 3+jpa整合真正运用到实际开发中。该案例采用目前最流行、最规范的java ee架构,整个应用分为jpa实体层、eao层、业务逻辑层、mvc层和视图层,各层之间分层清晰,层与层之间以松耦合的方法组织在一起。该案例既提供了ide无关的、基于ant管理的项目源码,也提供了基于netbeans ide的项目源码,最大限度地满足读者的需求。 作者简介: 李刚,从事10年的Java EE应用开发。曾任LITEON公司的J2EE技术主管,负责该公司的企业信息平台的架构设计。曾任广州电信、广东龙泉科技等公司的技术培训导师。2007年3月26日的《电脑报》专访人物。现任新东方广州中心软件教学总监,并曾任广东技术师范学院计算机科学系的兼职副教授。   培训的学生已在华为、立信、普信、网易、电信盈科、中企动力等公司就职。   国内知名的高端IT技术作家,已出版《Spring 2.0宝典》、《基于J2EE的Ajax宝典》、《轻量级J2EE企业应用实战》、《Struts 2权威指南》、《Ruby On Rails敏捷开发最佳实践》等著作。 目录: 第0章 学习Java的正确方法 1 0.1 我适合不适合编程 2 0.2 走出象牙塔 4 0.3 学习Java,应该如此疯狂 7 第1章 经典Java EE应用和开发环境 9 1.1 经典Java EE应用概述 10 1.1.1 Java EE 6相关规范 10 1.1.2 经典Java EE应用的分层模型 11 1.1.3 经典Java EE应用的组件 13 1.1.4 经典Java EE应用架构的优势 13 1.1.5 常用的企业服务器 14 1.2 经典Java EE应用相关技术 14 1.2.1 JSP、Servlet和JavaBean及 替代技术 14 1.2.2 JSF及替代技术 15 1.2.3 EJB组件技术简介 15 1.3 JBoss的下载和安装 15 1.3.1 下载和安装JBoss服务器 16 1.3.2 配置JBoss的服务端口 18 1.3.3 进入控制台 19 1.3.4 部署Web应用 22 1.4 WebLogic的下载和安装 24 1.4.1 WebLogic的下载和安装 24 1.4.2 WebLogic的基本配置 25 1.4.3 修改WebLogic的服务端口 29 1.4.4 部署Web应用 30 1.5 NetBeans的安装和使用 32 1.5.1 NetBeans的下载和安装 32 1.5.2 使用NetBeans开发Java EE应用 33 1.5.3 打开NetBeans项目 36 1.5.4 导入Eclipse项目 37 1.6 使用SVN进行协作开发 38 1.6.1 下载和安装SVN服务器 39 1.6.2 配置SVN资源库 39 1.6.3 下载和安装SVN客户端 41 1.6.4 发布项目到服务器 41 1.6.5 从服务器下载项目 42 1.6.6 提交(Commit)修改 42 1.6.7 同步(Update)本地文件 43 1.6.8 添加文件和目录 44 1.6.9 删除文件和目录 45 1.6.10 查看文件或目录的版本变革 45 1.6.11 从以前版本重新开始 46 1.6.12 创建分支 46 1.6.13 沿着分支开发 46 1.6.14 合并分支 47 1.6.15 使用NetBeans作为SVN客户端 48 1.7 本章小结 50 第2章 JSF的基本用法 51 2.1 MVC和JSF 52 2.1.1 MVC和常见MVC框架 52 2.1.2 JSF的优势 56 2.2 下载和安装JSF 57 2.3 JSF使用入门 60 2.3.1 从输入页面开始 60 2.3.2 开发托管Bean 61 2.3.3 定义导航规则 63 2.4 解读JSF配置 65 2.4.1 配置核心控制器(FacesServlet) 65 2.4.2 JSF配置文件结构 68 2.5 托管Bean和表达式语言 69 2.5.1 托管Bean的属性和表达式语言 69 2.5.2 托管Bean的方法 78 2.5.3 托管Bean的分类 80 2.5.4 初始化托管Bean的属性 85 2.5.5 通过FacesContext访问应用环境 89 2.6 导航模型 91 2.6.1 静态导航 93 2.6.2 动态导航 93 2.7 使用UI标签创建视图页面 94 2.7.1 UI标签概述 94 2.7.2 UI标签的通用属性 97 2.7.3 表单相关标签 98 2.7.4 其他标签 103 2.8 JSF的运行流程和生命周期 109 2.8.1 恢复视图阶段 110 2.8.2 应用请求值阶段 110 2.8.3 处理输入校验阶段 111 2.8.4 更新模型的值阶段 111 2.8.5 调用应用阶段 111 2.8.6 生成响应阶段 111 2.9 利用JSF的消息 112 2.10 本章小结 116 第3章 深入使用JSF 117 3.1 JSF事件机制 118 3.1.1 Java事件模型概述 118 3.1.2 Java事件模型示例 119 3.1.3 JSF事件模型 120 3.1.4 Action事件 122 3.1.5 值改变事件 125 3.1.6 生命周期事件 128 3.1.7 将监听器绑定到Bean属性 130 3.2 JSF的国际化支持 132 3.2.1 加载国际化资源文件 132 3.2.2 使用国际化消息 134 3.2.3 动态数据国际化 137 3.2.4 让用户选择语言 142 3.3 使用转换器完成类型转换 143 3.3.1 转换器概述、用途 144 3.3.2 JSF内建转换器 144 3.3.3 使用转换器 145 3.3.4 转换失败后的错误消息 149 3.4 自定义转换器 154 3.4.1 实现转换器类 154 3.4.2 注册转换器 156 3.4.3 使用自定义转换器 159 3.4.4 绑定到Bean属性的转换器 159 3.5 使用验证器进行输入校验 161 3.5.1 输入校验概述 161 3.5.2 JSF内置校验器 162 3.5.3 校验失败后的错误消息 163 3.5.4 必填校验器 165 3.6 自定义校验器 166 3.6.1 开发自定义校验器 166 3.6.2 注册校验器 167 3.6.3 使用自定义校验器 168 3.6.4 为自定义校验器开发专用标签 169 3.6.5 使用托管Bean的方法执行校验 173 3.6.6 绑定到Bean属性的校验器 175 3.7 本章小结 177 第4章 利用JDBC和JTA访问 数据库和管理全局事务 178 4.1 JDBC和容器管理的数据源 179 4.1.1 JDBC概述 179 4.1.2 使用JDBC执行数据库访问 180 4.1.3 使用WebLogic服务器管理的 数据源 182 4.1.4 使用JBoss服务器管理的数据源 187 4.2 事务和JTA 191 4.2.1 事务的基本概念 191 4.2.2 分布式事务处理、XA规范和 2PC协议 192 4.2.3 使用JTA全局事务保证多 数据库的一致性 193 4.3 事务隔离、传播属性的设置 198 4.3.1 并发访问和隔离 198 4.3.2 事务属性 199 4.4 EJB的事务管理 201 4.4.1 容器管理事务(CMT) 201 4.4.2 Bean管理事务(BMT) 201 4.5 事务超时设置 201 4.6 本章小结 203 第5章 JNDI和远程方法调用 204 5.1 JNDI的概念 205 5.1.1 命名服务 205 5.1.2 目录服务 206 5.1.3 JNDI的优点 206 5.2 JNDI编程入门 207 5.2.1 文件系统的命名服务 207 5.2.2 JNDI编程 208 5.3 服务器提供的JNDI支持 212 5.3.1 WebLogic的JNDI支持 212 5.3.2 JBoss的JNDI支持 215 5.4 RMI概述 216 5.4.1 RMI的相关概念 216 5.4.2 RMI的作用和意义 217 5.5 RMI编程 217 5.5.1 开发RMI服务器 217 5.5.2 开发RMI客户端 220 5.5.3 RMI的基本原理 220 5.6 同时作为客户端和服务器的 RMI程序 222 5.6.1 开发客户端程序 222 5.6.2 开发服务器端程序 223 5.7 本章小结 225 第6章 利用JMS实现企业消息处理 226 6.1 面向消息的架构和JMS概述 227 6.1.1 面向消息的应用架构 227 6.1.2 JMS的基础知识和优势 228 6.1.3 JMS的两个重要版本 229 6.2 PTP类型的JMS 230 6.2.1 配置PTP的JMS服务器 231 6.2.2 PTP消息的发送 241 6.2.3 PTP消息的同步接收 244 6.2.4 PTP消息的异步接收 246 6.3 Pub-Sub类型的JMS 248 6.3.1 配置Pub-Sub模型的JMS 服务器 248 6.3.2 消息的生产、消费 250 6.3.3 可靠的JMS订阅 251 6.4 JMS消息 253 6.4.1 JMS消息类型 253 6.4.2 JMS消息头和消息属性 253 6.4.3 重用消息对象 254 6.4.4 JMS传递方式和有效时间 255 6.4.5 设置消息的优先级 256 6.4.6 消息的确认方式 256 6.4.7 消息选择器 257 6.4.8 消息的临时目的261 6.5 使用队列浏览器查看全部消息 264 6.6 JMS和事务 265 6.6.1 使用事务性Session 265 6.6.2 利用JTA全局事务 267 6.7 JMS服务器的异常监听 268 6.8 JMS集群 269 6.9 本章小结 270 第7章 利用JavaMail实现E-mail 271 7.1 E-mail简介 272 7.1.1 SMTP协议简介 272 7.1.2 POP3协议简介 272 7.1.3 IMAP4协议简介 273 7.1.4 E-mail的用途 273 7.2 JavaMail介绍 274 7.2.1 JavaMail下载和安装 274 7.2.2 JavaMail的常用API 275 7.2.3 使用JavaMail发送邮件 277 7.2.4 使用JavaMail接收邮件 281 7.3 应用服务器的JavaMail支持 287 7.3.1 在WebLogic中配置JavaMail 288 7.3.2 通过WebLogic的邮件支持来 发送邮件 290 7.3.3 在JBoss中配置JavaMail 292 7.4 本章小结 294 第8章 会话EJB 295 8.1 EJB概述 296 8.1.1 EJB的概念和意义 296 8.1.2 EJB的发展历史 298 8.1.3 EJB的优势和使用场景 299 8.2 EJB的分类 301 8.2.1 Session Bean的概念和作用 302 8.2.2 Message Driven Bean的概念和 作用 303 8.2.3 实体和JPA 303 8.3 开发无状态的Session Bean 304 8.3.1 开发远程调用的无状态 Session Bean 304 8.3.2 开发本地调用的无状态 Session Bean 311 8.4 发布Session Bean 314 8.4.1 打包EJB-JAR 315 8.4.2 Annotation与部署描述文件 315 8.5 开发有状态的Session Bean 318 8.6 Session Bean的生命周期 321 8.6.1 无状态Session Bean的生命周期 321 8.6.2 有状态Session Bean的生命周期 322 8.6.3 定制Session Bean的生命 周期行为 323 8.7 在Session Bean中使用事务 327 8.7.1 容器管理事务 327 8.7.2 Bean管理事务 330 8.8 拦截器 332 8.9 依赖注入 335 8.9.1 EJB注入 336 8.9.2 资源注入 339 8.10 配置EJB引用 340 8.11 使用计时器进行任务调度 342 8.12 本章小结 345 第9章 消息驱动EJB 346 9.1 JMS和EJB 347 9.1.1 为什么使用MDB 347 9.1.2 使用MDB的设计原则 348 9.2 使用消息驱动Bean 349 9.2.1 使用@MessageDriven和@ActivationConfigProperty 350 9.2.2 实现MessageListener 352 9.2.3 MDB的生命周期 353 9.2.4 MDB中的依赖注入 356 9.2.5 事务管理和异常处理 359 9.3 使用NetBeans开发EJB 359 9.3.1 使用NetBeans开发Session Bean 359 9.3.2 使用NetBeans开发MDB 362 9.4 本章小结 363 第10章 Java持久化API(JPA) 364 10.1 实体简介 365 10.1.1 对象/关系数据库映射(ORM) 365 10.1.2 JPA的映射规则 367 10.1.3 JPA规范简介 368 10.2 实体入门 368 10.2.1 开发实体 369 10.2.2 在Java SE环境下使用 Hibernate JPA实现 370 10.2.3 在Java SE环境下使用 TopLink JPA实现 374 10.2.4 在Java SE环境下使用 EntityManager 377 10.2.5 使用orm.xml管理O/R映射 379 10.3 理解实体 382 10.3.1 持久化上下文和持久化单元 382 10.3.2 实体类的要求 382 10.3.3 实体的状态 383 10.3.4 管理实体的方法 384 10.4 实体的基本映射387 10.4.1 映射实体类的属性 387 10.4.2 将实体映射到多个表 394 10.4.3 映射复合类型的属性 396 10.4.4 映射实体类的主键 398 10.5 关联关系映射 402 10.5.1 单向N-1关联 403 10.5.2 单向1-1关联 406 10.5.3 单向1-N关联 409 10.5.4 单向N-N关联 411 10.5.5 双向1-1关联 414 10.5.6 双向1-N关联 417 10.5.7 双向N-N关联 420 10.5.8 使用Map集合记录关联实体 423 10.5.9 对关联实体进行排序 424 10.6 继承关系映射 426 10.6.1 整个类层次对应一张表的 映射策略 427 10.6.2 连接子类的映射策略 430 10.6.3 每个具体类对应一张表的 映射策略 434 10.7 使用抽象实体和非实体父类 436 10.7.1 抽象实体 436 10.7.2 非实体父类 438 10.7.3 重定义子类实体的外键列 440 10.8 实体的生命周期和监听器 444 10.8.1 实体的生命周期与回调事件 444 10.8.2 使用专门的监听器实现回调 448 10.8.3 为全部实体配置默认监听器 450 10.8.4 排除监听器 452 10.9 本章小结 455 第11章 JPA的查询支持 456 11.1 查询API 457 11.1.1 面向对象的JPQL 457 11.1.2 查询API简介 457 11.2 执行查询 459 11.2.1 使用Query创建查询 459 11.2.2 设置查询参数 459 11.2.3 取得查询结果 460 11.3 JPQL语法 461 11.3.1 使用from子句 462 11.3.2 使用select子句 463 11.3.3 查询部分属性 463 11.3.4 查询中使用构造器 464 11.3.5 使用distinct排除相同的记录 465 11.3.6 where子句和条件表达式 466 11.3.7 使用JPQL函数 466 11.3.8 多态查询 467 11.3.9 关联和连接 469 11.3.10 使用order by进行结果排序 473 11.3.11 JPQL查询的聚集函数 473 11.3.12 使用group by进行分组 474 11.3.13 结果集分页 475 11.3.14 使用子查询 475 11.3.15 命名查询 476 11.4 批量更新和批量删除 478 11.4.1 批量更新 479 11.4.2 批量删除 480 11.5 原生SQL查询 481 11.5.1 使用原生SQL查询 481 11.5.2 结果集映射和实体查询 482 11.5.3 使用命名的原生SQL查询 486 11.5.4 调用存储过程 488 11.6 本章小结 490 第12章 Web层和EJB的整合 491 12.1 Java EE应用的架构 492 12.1.1 SSH架构的复习和应用架构的 思考 492 12.1.2 MVC层和业务层整合 494 12.1.3 DAO模式和EAO模式 495 12.1.4 使用Session Facade模式 499 12.2 从Web层访问Session Bean 500 12.2.1 使用依赖注入访问无状态 Session Bean 501 12.2.2 通过EJB引用访问有状态 Session Bean 507 12.2.3 在工具类中调用Session Bean 509 12.3 在Web层使用JPA 511 12.3.1 使用容器管理的EntityManager 512 12.3.2 在容器内使用应用程序管理的 EntityManager 516 12.3.3 通过ThreadLocal在容器外使用 安全的EntityManager 518 12.4 基于JBoss的JSF+EJB 3+JPA 整合 522 12.4.1 开发JPA实体 522 12.4.2 开发EAO对象 524 12.4.3 开发业务逻辑组件 526 12.4.4 定义JSF的托管Bean来 处理请求 527 12.5 基于WebLogic的Struts 2+ EJB 3+JPA整合 531 12.5.1 开发实体并配置持久化单元 531 12.5.2 开发EAO组件和业务逻辑组件 532 12.5.3 配置EJB引用 532 12.5.4 定义Action来处理用户请求 532 12.6 本章小结 536 第13章 EJB和Web Service 537 13.1 Web Service概述 538 13.1.1 Web Service概述 538 13.1.2 Web Service平台概述 539 13.1.3 Web Service的广泛应用 542 13.2 JAX-WS:Java EE 5 Web Service平台 543 13.2.1 Java EE的Web Service支持 543 13.2.2 为什么选择EJB开发 Web Service 544 13.3 使用JAX-WS 2.0开发 Web Service 545 13.3.1 使用@WebService 545 13.3.2 使用@WebMethod 551 13.3.3 使用@SOAPBinding指定 Web Service风格 553 13.3.4 使用@WebParam 555 13.3.5 使用@WebResult 556 13.3.6 使用@OneWay 558 13.4 客户端调用Web Service 558 13.5 本章小结 559 第14章 利用JAAS开发安全的应用 560 14.1 JAAS概述 561 14.1.1 Java EE应用的安全概述 561 14.1.2 安全域、用户、组和角色概念 561 14.1.3 JAAS的基本流程 563 14.2 管理服务器的用户和组 565 14.2.1 管理WebLogic服务器上的 用户和组 565 14.2.2 管理JBoss服务器上的用户和 角色 573 14.2.3 使用RDBMS管理Jboss 服务器上的用户和角色 574 14.3 开发安全的Web应用 576 14.3.1 声明安全性 576 14.3.2 映射安全角色 579 14.3.3 基于JBoss服务器的表单登录 580 14.3.4 基于WebLogic服务器的安全 角色映射 583 14.3.5 基于WebLogic服务器的 表单登录 583 14.3.6 Web应用中编程式安全 584 14.4 开发安全的Java EE应用 585 14.4.1 为EJB声明安全性 585 14.4.2 应用客户端访问被保护的方法 587 14.4.3 使用Web组件调用EJB被 保护的方法 588 14.4.4 EJB中编程式安全 592 14.5 使用SSL建立安全连接 592 14.5.1 SSL基础知识 593 14.5.2 安装和配置SSL支持 593 14.5.3 在配置描述符中指定安全连接 595 14.6 本章小结 597 第15章 电子拍卖系统 598 15.1 系统功能简介和架构设计 599 15.1.1 系统功能简介 599 15.1.2 系统架构设计 599 15.2 持久层设计 600 15.2.1 系统实体 601 15.2.2 系统E-R图和数据表 601 15.2.3 实现JPA 实体 603 15.2.4 管理持久化单元 612 15.3 实现系统EAO层 614 15.3.1 实现EAO基类 615 15.3.2 实现系统EAO组件 618 15.4 实现业务逻辑层 622 15.4.1 定义业务逻辑组件接口 622 15.4.2 依赖注入EAO组件 624 15.4.3 业务逻辑组件中的异常处理 625 15.4.4 处理用户竞价 627 15.4.5 判断拍卖物品状态 631 15.4.6 事务管理 633 15.5 实现系统Web层 633 15.5.1 安装JSF 633 15.5.2 处理用户登录 634 15.5.3 图形验证码 639 15.5.4 登录控制 642 15.5.5 添加物品 643 15.5.6 处理用户竞价 650 15.6 使用SiteMesh页面装饰 656 15.6.1 在Web应用中安装SiteMesh 656 15.6.2 定义页面装饰 657 15.7 本章小结 659
内容为J2EE应用开发详解中的源代码 第1章 Java Web应用开发简介 1   1.1 Java EE应用概述 1   1.2 Java EE概念 1   1.2.1 Java EE多层模型 1   1.2.2 Java EE体系结构 2   1.3 Java EE的核心API与组件 4   1.4 Web服务器和应用服务器 13   1.5 小结 16   第2章 建立开发平台 17   2.1 构建开发环境 17   2.1.1 安装JDK 17   2.1.2 安装Tomcat 21   2.1.3 安装Eclipse 23   2.2 配置开发环境 23   2.3 小结 26   第3章 Java的反射机制 27   3.1 Java反射API 27   3.2 加载类的实例 29   3.2.1 加载class对象的两种方式 29   3.2.2 Class.forName()加载类的实例 30   3.2.3 loadClass获得类的实例 31   3.3 操作类的字段 31   3.3.1 获取对象的属性 31   3.4 操作类的方法 34   3.4.1 运行时调用对象的方法 34   3.4.2 无参构造函数 36   3.4.3 带参构造函数 37   3.5 动态代理 39   3.6 反射机制在Hibernate中的应用 42   3.7 小结 46   第4章 Servlet技术 47   4.1 Servlet简介 47   4.1.1 Servlet的特点 47   4.1.2 Servlet的优势 48   4.1.3 Servlet的工作过程 49   4.1.4 Servlet的生命周期 50   4.2 开发和部署一个简单的Servlet 51   4.3 Servlet常用API介绍 53   4.3.1 Servlet实现相关 54   4.3.2 Servlet配置相关 54   4.3.3 Servlet异常相关 55   4.3.4 请求和响应相关 55   4.3.5 会话跟踪 56   4.3.6 Servlet上下文 57   4.3.7 Servlet协作 57   4.3.8 Filter 58   4.4 使用Servlet处理客户端请求 58   4.5 会话跟踪 61   4.5.1 使用Cookie进行会话跟踪 61   4.5.2 使用URL重写进行会话跟踪 62   4.5.3 使用隐藏表单域进行会话跟踪 63   4.6 小结 65   第5章 JSP技术 67   5.1 JSP简介 67   5.2 JSP页面的结构 68   5.3 脚本元素 68   5.3.1 Scriptlet元素 69   5.3.2 Expression元素 69   5.3.3 Declaration元素 70   5.4 指令 73   5.4.1 page指令 73   5.4.2 include指令 75   5.5 动作 76   5.5.1 Resource动作 76   5.5.2 JavaBean动作 78   5.6 隐式对象 78   5.6.1 request对象 78   5.6.2 response对象 78   5.6.3 application对象 78   5.6.4 out对象 79   5.6.5 page对象 79   5.6.6 session对象 79   5.6.7 exception对象 80   5.6.8 pageContext对象 80   5.6.9 config对象 80   5.7 JSP自定义标签 81   5.8 小结 84   第6章 XML、CSS和XSLT 85   6.1 XML 85   6.1.1 什么是XML 85   6.1.2 XML的产生 85   6.1.3 XML的用途 86   6.1.4 XML元素 87   6.1.5 XML属性 87   6.1.6 XML语法规则 89   6.1.7 XML检验 91   6.2 CSS 92   6.3 XSLT 94   6.4 小结 96   第7章 Ajax简介 97   7.1 Ajax简介 97   7.2 Ajax技术核心 100   7.2.1 XMLHttpRequest对象的常用方法 100   7.2.2 标准的XMLHttpRequest属性 101   7.3 一个简单的Ajax实例 101   7.4 小结 104   第8章 Struts2框架 105   8.1 Web应用的发展 105   8.2 Struts2的起源和体系结构 106   8.3 Struts2核心部分详解 108   8.3.1 核心控制器FilterDispatcher 108   8.3.2 业务逻辑控制器Action 111   8.3.3 业务逻辑组件 116   8.3.4 Struts2表示层 118   8.3.5 Struts2配置文件 119   8.4 Action的配置方式 121   8.4.1 动态方法调用 121   8.4.2 设置action元素的method属性 122   8.4.3 使用通配符配置action 122   8.4.4 默认action 123   8.5 拦截器Interceptor 123   8.5.1 拦截器的定义 124   8.5.2 拦截器的实现原理 124   8.5.3 Struts2的内置拦截器 124   8.5.4 拦截器的配置和使用 125   8.5.5 自定义拦截器 126   8.6 一个简单的Struts2应用 130   8.7 小结 140   第9章 JSF 141   9.1 JSF技术简介 141   9.1.1 JSF与MVC模式 141   9.1.2 JSF应用程序配置 142   9.2 一个简单的JSF应用 142   9.2.1 JSF应用程序开发步骤 143   9.2.2 用户登录实例 143   9.3 JSF应用程序架构 147   9.3.1 JSF请求处理生命周期 147   9.3.2 JSF事件驱动模型 148   9.3.3 JSF导航模型 149   9.4 JSF的组成 152   9.4.1 UI组件 152   9.4.2 JSF标签 154   9.5 统一EL 156   9.5.1 表达式和函数 156   9.5.2 操作符 157   9.5.3 保留字 158   9.5.4 内置对象 158   9.6 Backing Bean 158   9.7 创建自定义组件 162   9.8 小结 164   第10章 JavaBean 165   10.1 JavaBean简介 165   10.1.1 JavaBean的特点 166   10.1.2 JavaBean的元素及属性 167   10.1.3 JavaBean的分类 168   10.2 创建JavaBean 168   10.2.1 JavaBean的规格说明 168   10.2.2 创建一个简单的JavaBean 168   10.3 在JSP中使用JavaBean 169   10.4 使用JavaBean连接数据库 172   10.5 小结 177   第11章 EJB 179   11.1 EJB简介 179   11.1.1 EJB的特点 179   11.1.2 EJB类型与组成 180   11.1.3 EJB 3.0的新特性 181   11.2 元数据注释和部署描述符 181   11.2.1 元数据注释 181   11.2.2 部署描述符 182   11.3 EJB支持JNDI 183   11.3.1 JNDI的概念 183   11.3.2 使用JNDI 186   11.4 会话Bean 191   11.4.1 会话Bean的分类 191   11.4.2 会话Bean的组成 195   11.4.3 会话Bean的生命周期 196   11.4.4 创建无状态会话Bean 197   11.4.5 创建有状态会话Bean 198   11.5 消息驱动Bean和消息服务 199   11.5.1 JMS 200   11.5.2 消息驱动Bean的生命周期 202   11.5.3 创建消息驱动Bean 202   11.6 实体Bean 203   11.6.1 实体Bean的特性 204   11.6.2 实体Bean的分类及组成 204   11.6.3 EJB 3.0中的实体Bean 206   11.7 EJB事务 208   11.7.1 基于容器管理事务 209   11.7.2 基于Bean管理的事务 210   11.8 EJB拦截器 212   11.9 EJB定时服务 214   11.10 EJB安全管理 214   11.11 小结 216   第12章 RMI 217   12.1 RMI简介 217   12.1.1 RMI的架构 218   12.1.2 RMI的组成及实现 218   12.1.3 RMI的优点 219   12.2 一个RMI的简单实例 219   12.3 小结 226   第13章 Web服务概论 227   13.1 SOA简介 227   13.2 Web服务简介 229   13.3 Web服务的核心技术 230   13.3.1 SOAP 232   13.3.2 WSDL 235   13.3.3 UDDI 236   13.4 小结 236   第14章 CORBA 237   14.1 CORBA的需求 237   14.2 CORBA的架构 237   14.2.1 IDL 239   14.2.2 ORB 240   14.2.3 IIOP 241   14.2.4 BOA 241   14.3 CORBA服务 241   14.4 创建CORBA应用 243   14.5 CORBA与RMI 246   14.5.1 CORBA和RMI的区别 246   14.5.2 CORBA和RMI的互操作 247   14.6 小结 248   第15章 Spring框架 249   15.1 Spring 2.0的体系结构 249   15.2 Ioc容器 250   15.2.1 BeanFactory 250   15.2.2 ApplicationContext 252   15.2.3 Beans的生命周期过程 253   15.2.4 Beans的进阶管理 254   15.3 依赖注入 259   15.3.1 Constructor注入 259   15.3.2 Setter注入 261   15.3.3 Method注入 263   15.4 Spring AOP技术 266   15.4.1 装备(advices) 267   15.4.2 Spring AOP的传统用法 275   15.4.3 基于@AspectJ注释的AOP 277   15.4.4 基于aop命名空间的AOP 279   15.5 小结 282   第16章 数据库技术和JDBC技术 283   16.1 关系数据库和SQL 283   16.2 关系数据库的工作环境 284   16.3 基于JDBC的数据访问技术 285   16.3.1 JDBC概述 285   16.3.2 数据库驱动程序 287   16.3.3 使用JDBC查询数据库 291   16.3.4 常用的JDBC类和方法 294   16.3.5 数据库连接池中使用JDBC 297   16.4 小结 302   第17章 ORM与Java持久化机制 303   17.1 ORM概述 303   17.2 域模型 304   17.3 实体域对象的持久化模式 304   17.4 JPA 305   17.4.1 实体 306   17.4.2 EntityManager 309   17.5 持久化查询语言 313   17.6 常用的JPA注释 316   17.7 小结 318   第18章 Hibernate 319   18.1 Hibernate体系结构 319   18.2 Hibernate核心接口 321   18.3 一个简单的Hibernate例子 321   18.4 详解Hibernate配置文件 325   18.4.1 Hibernate的两种配置方式 325   18.4.2 配置数据库连接池 327   18.5 HQL简介 328   18.6 小结 330   第19章 权限管理系统(Struts+Spring+Hiberante+Ajax) 331   19.1 需求分析 331   19.2 系统总体流程设计 331   19.3 系统设计 332   19.4 系统总体解析 336   19.5 系统功能解析 364   19.5.1 管理员登录 364   19.5.2 模块管理 374   19.5.3 角色数据操作 383   19.5.4 资源操作 391   19.5.5 用户管理 394   19.6 小结 404   第20章 航空订票系统(JSF/Richfaces+EJB+JPA) 405   20.1 需求分析 405   20.2 基本设计理念 406   20.3 系统设计 407   20.3.1 系统用例分析 407   20.3.2 持久化数据分析 413   20.3.3 系统操作序列描述 413   20.3.4 业务接口设计 419   20.4 数据库设计 421   20.4.1 数据库规划 421   20.4.2 具体数据库表 423   20.4.3 SQL代码 426   20.5 系统实现 431   20.5.1 工程开发环境的建立 431   20.5.2 EJB Entity开发 435   20.5.3 EJB Session开发 443   20.5.4 Message-Driven Bean开发 447   20.5.5 JSF/Richfaces开发 448   20.5.6 远程连接 455   20.5.7 系统配置 456   20.6 系统运行 462   20.6.1 服务器的选择 462   20.6.2 系统的部署 462   20.6.3 系统的运行 463   20.7 小结 466
Seam - 语境相关的组件[满江红20071230]............................................................................................................................ 1 Java EE 框架..................................................................................................................................................................................1 Table of Contents........................................................................................................................................................................... 2 JBoss Seam 简介......................................................................................................................................................................... 11 Chapter 1. Seam 入门.................................................................................................................................................................14 1.1. 试试看.......................................................................................................................................................................... 14 1.1.1. 在JBoss AS 上运行示例..................................................................................................................................14 1.1.2. 在Tomcat 服务器上运行示例.......................................................................................................................... 15 1.1.3. 运行测试........................................................................................................................................................... 15 1.2. 第一个例子:注册示例.............................................................................................................................................. 15 1.2.1. 了解代码........................................................................................................................................................... 16 1.2.2. 工作原理........................................................................................................................................................... 26 1.3. Seam 中的可点击列表:消息示例............................................................................................................................. 27 1.3.1. 理解代码........................................................................................................................................................... 27 1.3.2. 工作原理........................................................................................................................................................... 32 1.4. Seam 和jBPM:待办事项列表(todo list)示例..................................................................................................... 32 1.4.1. 理解代码........................................................................................................................................................... 33 1.4.2. 工作原理........................................................................................................................................................... 39 1.5. Seam 页面流:猜数字范例........................................................................................................................................ 40 1.5.1. 理解代码........................................................................................................................................................... 40 1.5.2. 工作原理........................................................................................................................................................... 45 1.6. 一个完整的Seam 应用程序:宾馆预订范例............................................................................................................ 45 1.6.1. 介绍................................................................................................................................................................... 46 1.6.2. 预订系统概况................................................................................................................................................... 48 1.6.3. 理解Seam 业务对话(Conversation)................................................................................................................. 48 1.6.4. Seam 的UI 控制库........................................................................................................................................... 55 1.6.5. Seam 调试页面................................................................................................................................................. 56 1.7. 一个使用Seam 和jBPM 的完整范例:DVD 商店...................................................................................................57 1.8. 一个使用Seam 工作空间管理(workspace management)的完整范例:Issue Tracker........................................59 1.9. 结合Seam 和Hibernate 的范例:Hibernate 预订系统............................................................................................. 60 1.10. 一个RESTful 的Seam 应用程序:Blog 范例......................................................................................................... 60 1.10.1. 使用“拉”风格的MVC................................................................................................................................... 61 1.10.2. 可收藏的搜索结果页面................................................................................................................................. 63 1.10.3. 在RESTful 应用程序中使用“推”风格("push"-style)的MVC................................................................65 1.11. 在JBoss 中用JSF 1.2 RI 运行Seam 的范例............................................................................................................68 Chapter 2. 用Seam-gen 起步......................................................................................................................................................69 2.1. 准备活动...................................................................................................................................................................... 69 2.2. 建立一个新的Eclipse 项目........................................................................................................................................ 69 2.3. 创建新动作.................................................................................................................................................................. 72 2.4. 创建有动作的表单(form)...................................................................................................................................... 73 2.5. 从现有数据库生成应用程序...................................................................................................................................... 74 2.6. 将应用部署为EAR..................................................................................................................................................... 75 2.7. Seam 与增量热部署.................................................................................................................................................... 75 3 / 347 2.8. 在Jboss 4.0 下使用Seam............................................................................................................................................76 2.8.1. 安装JBoss 4.0...................................................................................................................................................76 2.8.2. 安装JSF 1.2 RI................................................................................................................................................. 76 Chapter 3. 上下文相关的组件模型............................................................................................................................................76 3.1. Seam 上下文.................................................................................................................................................................76 3.1.1. Stateless context(无状态上下文)................................................................................................................. 77 3.1.2. Event context(事件上下文)..........................................................................................................................77 3.1.3. Page context(页面上下文)............................................................................................................................77 3.1.4. Conversation context(业务会话上下文)......................................................................................................77 3.1.5. Session context(Session 上下文)..................................................................................................................78 3.1.6. Business process context (业务流程上下文)..............................................................................................78 3.1.7. Application context(应用上下文).................................................................................................................78 3.1.8. Context variables(上下文变量)....................................................................................................................79 3.1.9. Context 搜索优先级..........................................................................................................................................79 3.1.10. 并发模型......................................................................................................................................................... 79 3.2. Seam 组件....................................................................................................................................................................80 3.2.1. 无状态Session Bean......................................................................................................................................... 80 3.2.2. 有状态Session Bean......................................................................................................................................... 80 3.2.3. 实体Bean.......................................................................................................................................................... 81 3.2.4. JavaBeans.......................................................................................................................................................... 81 3.2.5. 消息驱动Bean.................................................................................................................................................. 82 3.2.6. 拦截................................................................................................................................................................... 82 3.2.7. 组件名字........................................................................................................................................................... 82 3.2.8. 定义组件范围(Defining the Component Scope)......................................................................................... 83 3.2.9. 具有多个角色的组件(Components with multiple roles)............................................................................ 84 3.2.10. 内置组件......................................................................................................................................................... 84 3.3. 双向注入...................................................................................................................................................................... 85 3.4. Lifecycle methods(生命周期方法)......................................................................................................................... 87 3.5. 条件装载(Conditional installation)........................................................................................................................ 87 3.6. 日志...............................................................................................................................................................................88 3.7. Mutable 接口和@ReadOnly........................................................................................................................................89 3.8. Factory 和Manager 组件.............................................................................................................................................91 Chapter 4. 配置Seam 组件.........................................................................................................................................................93 4.1. 通过属性设置来配置组件.......................................................................................................................................... 93 4.2. 通过components.xml 来配置组件.............................................................................................................................93 4.3. 细粒度的配置文件...................................................................................................................................................... 97 4.4. 可配置的属性类型...................................................................................................................................................... 97 4.5. 使用XML 命名空间................................................................................................................................................... 98 Chapter 5. 事件、拦截器和异常处理..................................................................................................................................... 101 5.1. Seam 事件...................................................................................................................................................................101 5.1.1. 页面动作......................................................................................................................................................... 102 5.1.2. 组件驱动的事件............................................................................................................................................. 108 5.1.3. 上下文事件..................................................................................................................................................... 109 5.2. Seam 拦截器..............................................................................................................................................................110 5.3. 管理异常.....................................................................................................................................................................112 5.3.1. 异常和事务..................................................................................................................................................... 112 5.3.2. 激活Seam 异常处理...................................................................................................................................... 113 4 / 347 5.3.3. 使用注解处理异常......................................................................................................................................... 113 5.3.4. 用XML 处理异常.......................................................................................................................................... 114 5.3.5. 一些常见的异常............................................................................................................................................. 115 Chapter 6. 对话以及工作区管理..............................................................................................................................................116 6.1. Seam 的对话模型.......................................................................................................................................................116 6.2. 嵌套对话.....................................................................................................................................................................118 6.3. 使用GET 请求来开始一个对话............................................................................................................................... 118 6.4. 利用以及......................................................................................................................................119 6.5. 成功信息.................................................................................................................................................................... 121 6.6. 使用“显式”的对话id.................................................................................................................................................121 6.7. 工作区管理................................................................................................................................................................ 122 6.7.1. 工作区管理及JSF 导航................................................................................................................................. 122 6.7.2. 工作区管理和jPDL 页面流........................................................................................................................... 122 6.7.3. 对话转换器..................................................................................................................................................... 123 6.7.4. 对话列表......................................................................................................................................................... 124 6.7.5. 导航控件......................................................................................................................................................... 125 6.8. 对话组件和JSF 组件绑定........................................................................................................................................ 125 6.9. 对话组件的并发调用................................................................................................................................................ 126 6.9.1. RichFaces Ajax................................................................................................................................................ 127 Chapter 7. 页面流和业务流程..................................................................................................................................................128 7.1. Seam 中的页面流...................................................................................................................................................... 128 7.1.1. 两种导航模型................................................................................................................................................. 128 7.1.2. Seam 和后退按钮........................................................................................................................................... 131 7.2. 使用jPDL 页面流......................................................................................................................................................132 7.2.1. 安装页面流..................................................................................................................................................... 132 7.2.2. 开始页面流..................................................................................................................................................... 133 7.2.3. 页面节点和跳转............................................................................................................................................. 134 7.2.4. 流程控制......................................................................................................................................................... 135 7.2.5. 流程的结束..................................................................................................................................................... 135 7.2.6. 页面流组合..................................................................................................................................................... 135 7.3. Seam 中的业务流程管理.......................................................................................................................................... 136 7.4. 使用jPDL 业务流程定义..........................................................................................................................................137 7.4.1. 安装流程定义................................................................................................................................................. 137 7.4.2. 初始化Actor id............................................................................................................................................... 137 7.4.3. 启动一个业务流程......................................................................................................................................... 138 7.4.4. 任务分配......................................................................................................................................................... 138 7.4.5. 任务列表......................................................................................................................................................... 138 7.4.6. 执行一个任务................................................................................................................................................. 139 Chapter 8. Seam 和对象/关系映射...........................................................................................................................................140 8.1. 简介.............................................................................................................................................................................140 8.2. Seam 管理的事务...................................................................................................................................................... 140 8.2.1. 关闭Seam 管理的事务.................................................................................................................................. 141 8.2.2. 配置Seam 事务管理器.................................................................................................................................. 142 8.2.3. 事务同步......................................................................................................................................................... 142 8.3. Seam 管理的持久化上下文...................................................................................................................................... 142 8.3.1. 在Seam 管理的持久化上下文中使用JPA....................................................................................................143 8.3.2. 使用Seam 管理的Hibernate 会话................................................................................................................. 143 5 / 347 8.3.3. Seam 管理的持久化上下文和原子会话........................................................................................................ 144 8.4. 使用JPA “代理(delegate)”...................................................................................................................................145 8.5. 在EJB-QL/HQL 中使用EL......................................................................................................................................146 8.6. 使用Hibernate 过滤器.............................................................................................................................................. 146 Chapter 9. Seam 中的JSF 表单验证........................................................................................................................................147 Chapter 10. Groovy 集成.......................................................................................................................................................... 152 10.1. Groovy 简介............................................................................................................................................................. 152 10.2. 用Groovy 编写Seam 应用..................................................................................................................................... 152 10.2.1. 编写Groovy 组件.........................................................................................................................................152 10.2.2. seam-gen........................................................................................................................................................ 154 10.3. 部署.......................................................................................................................................................................... 154 10.3.1. 部署Groovy 代码.........................................................................................................................................155 10.3.2. 开发时部署本地.groovy 文件.......................................................................................................................155 10.3.3. seam-gen........................................................................................................................................................ 155 Chapter 11. Seam 应用程序框架..............................................................................................................................................155 11.1. 简介...........................................................................................................................................................................156 11.2. Home 对象................................................................................................................................................................157 11.3. Query 对象................................................................................................................................................................161 11.4. Controller 对象......................................................................................................................................................... 163 Chapter 12. Seam 和JBoss 规则.............................................................................................................................................. 164 12.1. 安装规则.................................................................................................................................................................. 164 12.2. 在Seam 组件中使用规则....................................................................................................................................... 165 12.3. 在jBPM 流程定义中使用规则...............................................................................................................................166 Chapter 13. 安全........................................................................................................................................................................168 13.1. 概述.......................................................................................................................................................................... 168 13.1.1. 哪种模式更适合我的应用程序呢?............................................................................................................168 13.2. 需求.......................................................................................................................................................................... 168 13.3. 取消安全.................................................................................................................................................................. 168 13.4. 验证.......................................................................................................................................................................... 169 13.4.1. 配置............................................................................................................................................................... 169 13.4.2. 编写验证方法............................................................................................................................................... 169 13.4.3. 编写登录表单............................................................................................................................................... 171 13.4.4. 简化配置- 概述..........................................................................................................................................172 13.4.5. 处理安全异常............................................................................................................................................... 172 13.4.6. 登录重定向................................................................................................................................................... 172 13.4.7. HTTP 验证.................................................................................................................................................... 173 13.4.8. 高级验证特性............................................................................................................................................... 174 13.5. 错误消息.................................................................................................................................................................. 174 13.6. 授权.......................................................................................................................................................................... 175 13.6.1. 核心概念....................................................................................................................................................... 175 13.6.2. 保护组件....................................................................................................................................................... 175 13.6.3. 用户界面中的安全....................................................................................................................................... 177 13.6.4. 保护页面....................................................................................................................................................... 178 13.6.5. 保护实体....................................................................................................................................................... 178 13.7. 编写安全规则.......................................................................................................................................................... 180 13.7.1. 许可概述....................................................................................................................................................... 180 13.7.2. 配置规则文件............................................................................................................................................... 180 6 / 347 13.7.3. 创建安全规则文件....................................................................................................................................... 181 13.8. SSL 安全...................................................................................................................................................................183 13.9. 实现Captcha 测试................................................................................................................................................... 183 13.9.1. 配置Captcha Servlet.....................................................................................................................................184 13.9.2. 添加Captcha 到页面.................................................................................................................................... 184 13.9.3. 定制Captcha 图片........................................................................................................................................ 184 Chapter 14. 国际化和主题........................................................................................................................................................185 14.1. 本地化...................................................................................................................................................................... 185 14.2. 标签.......................................................................................................................................................................... 186 14.2.1. 定义标签....................................................................................................................................................... 186 14.2.2. 标签显示....................................................................................................................................................... 187 14.2.3. Faces Messages..............................................................................................................................................187 14.3. 时区.......................................................................................................................................................................... 188 14.4. 主题.......................................................................................................................................................................... 188 14.5. 使用cookie 保存locale 和主题设置.......................................................................................................................189 Chapter 15. Seam Text...............................................................................................................................................................190 15.1. 基本格式化.............................................................................................................................................................. 190 15.2. 输入代码和有特殊字符的文本............................................................................................................................... 192 15.3. 链接.......................................................................................................................................................................... 193 15.4. 输入HTML.............................................................................................................................................................. 193 Chapter 16. iText PDF 生成...................................................................................................................................................... 193 16.1. 使用PDF 支持......................................................................................................................................................... 193 16.1.1. 创建一个文档............................................................................................................................................... 194 16.1.2. 基本的文本元素........................................................................................................................................... 194 16.1.3. 页眉和页脚................................................................................................................................................... 197 16.1.4. 章节............................................................................................................................................................... 198 16.1.5. 列表............................................................................................................................................................... 199 16.1.6. 表格............................................................................................................................................................... 200 16.1.7. 文档常量....................................................................................................................................................... 202 16.1.8. iText 配置...................................................................................................................................................... 202 16.2. 图表.......................................................................................................................................................................... 203 16.3. 柱状图编码.............................................................................................................................................................. 207 16.4. 更详细的文档.......................................................................................................................................................... 208 Chapter 17. 电子邮件................................................................................................................................................................208 17.1. 创建一条消息.......................................................................................................................................................... 208 17.1.1. 附件............................................................................................................................................................... 209 17.1.2. HTML/Text 交替部分..................................................................................................................................210 17.1.3. 多个收件人................................................................................................................................................... 211 17.1.4. 多条信息....................................................................................................................................................... 211 17.1.5. 模板................................................................................................................................................................211 17.1.6. 国际化........................................................................................................................................................... 212 17.1.7. 其它的标识头............................................................................................................................................... 212 17.2. 接收邮件.................................................................................................................................................................. 213 17.3. 配置.......................................................................................................................................................................... 213 17.3.1. mailSession..................................................................................................................................................214 17.4. Meldware.................................................................................................................................................................. 214 17.5. 标签.......................................................................................................................................................................... 215 7 / 347 Chapter 18. 异步和消息............................................................................................................................................................217 18.1. 异步.......................................................................................................................................................................... 217 18.1.1. 异步方法....................................................................................................................................................... 218 18.1.2. 包含Quartz Dispatcher 的异步方法.............................................................................................................220 18.1.3. 异步事件....................................................................................................................................................... 223 18.2. Seam 中的消息........................................................................................................................................................ 223 18.2.1. 配置............................................................................................................................................................... 223 18.2.2. 发送消息....................................................................................................................................................... 223 18.2.3. 利用消息驱动Bean 接收消息......................................................................................................................224 18.2.4. 在客户端接收消息....................................................................................................................................... 224 Chapter 19. 缓存........................................................................................................................................................................225 19.1. 在Seam 中使用JBossCache...................................................................................................................................225 19.2. 页片段缓存.............................................................................................................................................................. 226 Chapter 20. Web Services.......................................................................................................................................................... 227 20.1. 配置和打包.............................................................................................................................................................. 227 20.2. 对话的Web Services................................................................................................................................................228 20.2.1. 建议策略....................................................................................................................................................... 229 20.3. Web Servic 范例....................................................................................................................................................... 229 Chapter 21. Remoting................................................................................................................................................................230 21.1. 配置.......................................................................................................................................................................... 231 21.2. Seam 对象.................................................................................................................................................................231 21.2.1. Hello World 示例.......................................................................................................................................... 231 21.2.2. Seam.Component...........................................................................................................................................233 21.2.3. Seam.Remoting..............................................................................................................................................235 21.3. EL 表达式求值........................................................................................................................................................ 235 21.4. 客户端接口.............................................................................................................................................................. 235 21.5. 上下文...................................................................................................................................................................... 236 21.5.1. 设置和读取对话ID......................................................................................................................................236 21.5.2. 当前对话范围内的远程调用........................................................................................................................ 236 21.6. 批量请求.................................................................................................................................................................. 237 21.7. 使用数据类型.......................................................................................................................................................... 237 21.7.1. Primitives / Basic 类型.................................................................................................................................237 21.7.2. JavaBeans...................................................................................................................................................... 237 21.7.3. Date 和Time................................................................................................................................................. 238 21.7.4. Enums 枚举类型.......................................................................................................................................... 238 21.7.5. Collections 集合........................................................................................................................................... 238 21.8. 调试.......................................................................................................................................................................... 239 21.9. 加载消息.................................................................................................................................................................. 239 21.9.1. 修改信息....................................................................................................................................................... 239 21.9.2. 隐藏加载信息............................................................................................................................................... 239 21.9.3. 自定义加载指示器....................................................................................................................................... 240 21.10. 控制返回数据........................................................................................................................................................ 240 21.10.1. 一般字段的约束......................................................................................................................................... 241 21.10.2. 集合和映射的约束..................................................................................................................................... 241 21.10.3. 特定类型对象的约束................................................................................................................................. 241 21.10.4. 组合约束..................................................................................................................................................... 241 21.11. JMS 消息................................................................................................................................................................ 242 8 / 347 21.11.1. 配置..............................................................................................................................................................242 21.11.2. 订阅JMS 主题............................................................................................................................................ 242 21.11.3. 退订主题..................................................................................................................................................... 242 21.11.4. 调整轮询过程............................................................................................................................................. 242 Chapter 22. Seam 和Google 的Web 工具包(GWT)................................................................................................................243 22.1. 配置.......................................................................................................................................................................... 243 22.2. 准备你的组件.......................................................................................................................................................... 243 22.3. 将GWT 小组件接到Seam 组件............................................................................................................................. 244 22.4. GWT Ant Targets...................................................................................................................................................... 246 Chapter 23. Spring Framework 集成........................................................................................................................................ 247 23.1. 把Seam 组件注入Spring Bean 中.......................................................................................................................... 248 23.2. 将Spring Bean 注入到Seam 组件中...................................................................................................................... 249 23.3. 将Spring Bean 转换为Seam 组件.......................................................................................................................... 250 23.4. Seam 作用域的Spring Bean................................................................................................................................... 250 23.5. 使用Spring PlatformTransactionManagement........................................................................................................251 23.6. 在Spring 中使用Seam 管理的持久化上下文....................................................................................................... 251 23.7. 在Spring 中使用Seam 管理的Hibernate 会话......................................................................................................253 23.8. 作为Seam 组件的Spring 应用上下文................................................................................................................... 253 23.9. 使用Spring TaskExecutor 的@Asynchronous.........................................................................................................253 Chapter 24. Hibernate Search.................................................................................................................................................... 254 24.1. 简介.......................................................................................................................................................................... 254 24.2. 配置.......................................................................................................................................................................... 254 Note............................................................................................................................................................................255 Note............................................................................................................................................................................255 24.3. 用法.......................................................................................................................................................................... 256 Note............................................................................................................................................................................256 Caution.......................................................................................................................................................................257 Chapter 25. Seam 配置和Seam 应用程序打包........................................................................................................................258 25.1. Seam 基本配置........................................................................................................................................................ 258 25.1.1. 将Seam 与JSF 和servlet 容器集成.......................................................................................................... 258 25.1.2. 使用Facelets................................................................................................................................................. 258 25.1.3. Seam Resource Servlet.................................................................................................................................. 259 25.1.4. Seam Servlet 过滤器.....................................................................................................................................259 25.1.5. 将Seam 与你的EJB 容器集成.................................................................................................................... 262 25.1.6. 切记!........................................................................................................................................................... 263 25.2. 在Java EE 5 中配置Seam...................................................................................................................................... 264 25.2.1. 打包............................................................................................................................................................... 264 25.3. 在J2EE 中配置Seam..............................................................................................................................................265 25.3.1. 在Seam 中引导Hibernate........................................................................................................................... 266 25.3.2. 在Seam 中引导JPA.....................................................................................................................................266 25.3.3. 打包............................................................................................................................................................... 266 25.4. 在Java SE 中配置Seam,没有内嵌JBoss............................................................................................................267 25.5. 用嵌入式的JBoss 在Java SE 中配置Seam...........................................................................................................267 25.5.1. 安装嵌入式的JBoss.....................................................................................................................................268 25.5.2. 打包............................................................................................................................................................... 268 25.6. 在Seam 中配置jBPM.............................................................................................................................................269 25.6.1. 打包............................................................................................................................................................... 270 9 / 347 25.7. 在Portal 中配置Seam.............................................................................................................................................271 25.8. 在JBoss AS 中配置SFSB 和会话超时...................................................................................................................271 Chapter 26. Seam on OC4J........................................................................................................................................................272 26.1. jee5/booking 实例................................................................................................................................................... 272 26.1.1. 预订酒店实例的依赖包............................................................................................................................... 273 26.1.2. OC4J 需要的额外依赖包..............................................................................................................................273 26.1.3. 配置文件的改变........................................................................................................................................... 273 26.1.4. 构建jee5/booking 实例............................................................................................................................... 274 26.2. 部署Seam 应用程序到OC4J 中............................................................................................................................. 274 26.3. 将一个使用seam-gen 创建的应用程序部署到OC4J 中。.............................................................................. 275 26.3.1. seam-gen 之类的应用程序的OC4J 部署描述符........................................................................................ 280 Chapter 27. Seam 注解..............................................................................................................................................................281 27.1. 用于定义组件的注解.............................................................................................................................................. 281 27.2. 用于双向注入的注解.............................................................................................................................................. 283 27.3. 关于组件生命周期方法的注解............................................................................................................................... 286 27.4. 用于声明上下文的注解.......................................................................................................................................... 286 27.5. 用于在J2EE 环境中使用Seam JavaBean 组件的注解......................................................................................... 289 27.6. 用于异常的注解...................................................................................................................................................... 289 27.7. 用于Seam Remoting 的注解................................................................................................................................. 290 27.8. 用于Seam 拦截器(interceptor)的注解...............................................................................................................290 27.9. 用于异步(asynchronicity)的注解....................................................................................................................... 291 27.10. 用于JSF 的注解.................................................................................................................................................... 291 27.10.1. 和dataTable 一起使用的注解...................................................................................................................292 27.11. 用于数据绑定的元数据注解................................................................................................................................ 292 27.12. 用于封包(packing)的注解.................................................................................................................................. 293 27.13. 用于和Servlet 容器集成的注解............................................................................................................................293 Chapter 28. 内置Seam 组件.....................................................................................................................................................294 28.1. 上下文注入组件...................................................................................................................................................... 294 28.2. 工具组件.................................................................................................................................................................. 294 28.3. 组件的国际化和主题.............................................................................................................................................. 296 28.4. 控制对话组件.......................................................................................................................................................... 297 28.5. 与jBPM 相关的组件...............................................................................................................................................298 28.6. 与安全相关的组件.................................................................................................................................................. 300 28.7. 与JMS 相关的组件.................................................................................................................................................300 28.8. 与邮件相关的组件.................................................................................................................................................. 300 28.9. 基础组件.................................................................................................................................................................. 301 28.10. 杂项组件................................................................................................................................................................ 303 28.11. 特殊组件.................................................................................................................................................................303 Chapter 29. Seam 的JSF 控件..................................................................................................................................................305 29.1. 标签.......................................................................................................................................................................... 305 29.2. 注解.......................................................................................................................................................................... 319 Chapter 30. 表达式语言增强....................................................................................................................................................320 30.1. 参数方法绑定.......................................................................................................................................................... 320 30.1.1. 用法............................................................................................................................................................... 320 30.1.2. 限制............................................................................................................................................................... 321 30.2. 参数值绑定.............................................................................................................................................................. 321 30.3. 映射.......................................................................................................................................................................... 322 10 / 347 Chapter 31. 测试Seam 应用程序.....................................................................................................
2.1. 简介 2.2. 控制反转(IoC)容器 2.2.1. 新的bean作用域 2.2.2. 更简单的XML配置 2.2.3. 可扩展的XML编写 2.2.4. Annotation(注解)驱动配置 2.2.5. 在classpath中自动搜索组件 2.3. 面向切面编程(AOP) 2.3.1. 更加简单的AOP XML配置 2.3.2. 对@AspectJ 切面的支持 2.3.3. 对bean命名pointcut( bean name pointcut element)的支持 2.3.4. 对AspectJ装载时织入(AspectJ load-time weaving)的支持 2.4. 中间层 2.4.1. 在XML里更为简单的声明性事务配置 2.4.2. 对Websphere 事务管理的完整支持 2.4.3. JPA 2.4.4. 异步的JMS 2.4.5. JDBC 2.5. Web层 2.5.1. Spring MVC合理的默认值 2.5.2. Portlet 框架 2.5.3. 基于Annotation的控制器 2.5.4. Spring MVC的表单标签库 2.5.5. 对Tiles 2 支持 2.5.6. 对JSF 1.2支持 2.5.7. JAX-WS支持 2.6. 其他 2.6.1. 动态语言支持 2.6.2. 增强的测试支持 2.6.3. JMX 支持 2.6.4. 将Spring 应用程序上下文部署为JCA adapter 2.6.5. 计划任务 2.6.6. 对Java 5 (Tiger) 支持 2.7. 移植到Spring 2.5 2.7.1. 改变 2.8. 更新的样例应用 2.9. 改进的文档 I. 核心技术 3. IoC(控制反转)容器 3.1. 简介 3.2. 基本原理 - 容器和bean 3.2.1. 容器 3.2.2. 实例化容器 3.2.3. 多种bean 3.2.4. 使用容器 3.3. 依赖 3.3.1. 注入依赖 3.3.2. 依赖配置详解 3.3.3. 使用depends-on 3.3.4. 延迟初始化bean 3.3.5. 自动装配(autowire)协作者 3.3.6. 依赖检查 3.3.7. 方法注入 3.4. Bean的作用域 3.4.1. Singleton作用域 3.4.2. Prototype作用域 3.4.3. Singleton beans和prototype-bean的依赖 3.4.4. 其他作用域 3.4.5. 自定义作用域 3.5. 定制bean特性 3.5.1. 生命周期回调 3.5.2. 了解自己 3.6. bean定义的继承 3.7. 容器扩展点 3.7.1. 用BeanPostProcessor定制bean 3.7.2. 用BeanFactoryPostProcessor定制配置元数据 3.7.3. 使用FactoryBean定制实例化逻辑 3.8. The ApplicationContext 3.8.1. BeanFactory 还是 ApplicationContext? 3.8.2. 利用MessageSource实现国际化 3.8.3. 事件 3.8.4. 底层资源的访问 3.8.5. ApplicationContext在WEB应用中的实例化 3.9. 粘合代码和可怕的singleton 3.10. 以J2EE RAR文件的形式部署Spring ApplicationContext 3.11. 基于注解(Annotation-based)的配置 3.11.1. @Autowired 3.11.2. 基于注解的自动连接微调 3.11.3. CustomAutowireConfigurer 3.11.4. @Resource 3.11.5. @PostConstruct 与 @PreDestroy 3.12. 对受管组件的Classpath扫描 3.12.1. @Component和更多典型化注解 3.12.2. 自动检测组件 3.12.3. 使用过滤器自定义扫描 3.12.4. 自动检测组件的命名 3.12.5. 为自动检测的组件提供一个作用域 3.12.6. 用注解提供限定符元数据 3.13. 注册一个LoadTimeWeaver 4. 资源 4.1. 简介 4.2. Resource接口 4.3. 内置 Resource 实现 4.3.1. UrlResource 4.3.2. ClassPathResource 4.3.3. FileSystemResource 4.3.4. ServletContextResource 4.3.5. InputStreamResource 4.3.6. ByteArrayResource 4.4. ResourceLoader接口 4.5. ResourceLoaderAware 接口 4.6. 把Resource作为属性来配置 4.7. Application context 和Resource 路径 4.7.1. 构造application context 4.7.2. Application context构造器中资源路径的通配符 4.7.3. FileSystemResource 说明 5. 校验,数据绑定,BeanWrapper,与属性编辑器 5.1. 简介 5.2. 使用Spring的Validator接口进行校验 5.3. 从错误代码到错误信息 5.4. Bean处理和BeanWrapper 5.4.1. 设置和获取属性值以及嵌套属性 5.4.2. 内建的PropertyEditor实现 6. 使用Spring进行面向切面编程(AOP) 6.1. 简介 6.1.1. AOP概念 6.1.2. Spring AOP的功能和目标 6.1.3. AOP代理 6.2. @AspectJ支持 6.2.1. 启用@AspectJ支持 6.2.2. 声明一个切面 6.2.3. 声明一个切入点(pointcut) 6.2.4. 声明通知 6.2.5. 引入(Introduction) 6.2.6. 切面实例化模型 6.2.7. 例子 6.3. 基于Schema的AOP支持 6.3.1. 声明一个切面 6.3.2. 声明一个切入点 6.3.3. 声明通知 6.3.4. 引入 6.3.5. 切面实例化模型 6.3.6. Advisor 6.3.7. 例子 6.4. AOP声明风格的选择 6.4.1. Spring AOP还是完全用AspectJ? 6.4.2. Spring AOP中使用@AspectJ还是XML? 6.5. 混合切面类型 6.6. 代理机制 6.6.1. 理解AOP代理 6.7. 以编程方式创建@AspectJ代理 6.8. 在Spring应用中使用AspectJ 6.8.1. 在Spring中使用AspectJ进行domain object的依赖注入 6.8.2. Spring中其他的AspectJ切面 6.8.3. 使用Spring IoC来配置AspectJ的切面 6.8.4. 在Spring应用中使用AspectJ加载时织入(LTW) 6.9. 更多资源 7. Spring AOP APIs 7.1. 简介 7.2. Spring中的切入点API 7.2.1. 概念 7.2.2. 切入点运算 7.2.3. AspectJ切入点表达式 7.2.4. 便利的切入点实现 7.2.5. 切入点的超类 7.2.6. 自定义切入点 7.3. Spring的通知API 7.3.1. 通知的生命周期 7.3.2. Spring里的通知类型 7.4. Spring里的Advisor API 7.5. 使用ProxyFactoryBean创建AOP代理 7.5.1. 基础 7.5.2. JavaBean属性 7.5.3. 基于JDK和CGLIB的代理 7.5.4. 对接口进行代理 7.5.5. 对类进行代理 7.5.6. 使用“全局”通知器 7.6. 简化代理定义 7.7. 使用ProxyFactory通过编程创建AOP代理 7.8. 操作被通知对象 7.9. 使用“自动代理(autoproxy)”功能 7.9.1. 自动代理bean定义 7.9.2. 使用元数据驱动的自动代理 7.10. 使用TargetSource 7.10.1. 热交换目标源 7.10.2. 池化目标源 7.10.3. 原型目标源 7.10.4. ThreadLocal目标源 7.11. 定义新的Advice类型 7.12. 更多资源 8. 测试 8.1. 简介 8.2. 单元测试 8.2.1. Mock对象 8.2.2. 单元测试支持类 8.3. 集成测试 8.3.1. 概览 8.3.2. 使用哪个支持框架 8.3.3. 通用目标 8.3.4. JDBC测试支持 8.3.5. 常用注解 8.3.6. JUnit 3.8遗留支持 8.3.7. Spring TestContext Framework 8.3.8. PetClinic示例 8.4. 更多资源 II. 中间层数据访问 9. 事务管理 9.1. 简介 9.2. 动机 9.3. 关键抽象 9.4. 使用资源同步的事务 9.4.1. 高层次方案 9.4.2. 低层次方案 9.4.3. TransactionAwareDataSourceProxy 9.5. 声明式事务管理 9.5.1. 理解Spring的声明式事务管理实现 9.5.2. 第一个例子 9.5.3. 回滚 9.5.4. 为不同的bean配置不同的事务语义 9.5.5. 有关的设置 9.5.6. 使用 @Transactional 9.5.7. 事务传播 9.5.8. 通知事务操作 9.5.9. 结合AspectJ使用 @Transactional 9.6. 编程式事务管理 9.6.1. 使用TransactionTemplate 9.6.2. 使用PlatformTransactionManager 9.7. 选择编程式事务管理还是声明式事务管理 9.8. 与特定应用服务器集成 9.8.1. IBM WebSphere 9.8.2. BEA WebLogic 9.8.3. Oracle OC4J 9.9. 常见问题的解决方法 9.9.1. 对一个特定的 DataSource 使用了错误的事务管理器 9.10. 更多的资源 10. DAO支持 10.1. 简介 10.2. 一致的异常层次 10.3. 一致的DAO支持抽象类 11. 使用JDBC进行数据访问 11.1. 简介 11.1.1. 选择一种工作模式 11.1.2. Spring JDBC包结构 11.2. 利用JDBC核心类控制JDBC的基本操作和错误处理 11.2.1. JdbcTemplate类 11.2.2. NamedParameterJdbcTemplate类 11.2.3. SimpleJdbcTemplate类 11.2.4. DataSource接口 11.2.5. SQLExceptionTranslator接口 11.2.6. 执行SQL语句 11.2.7. 执行查询 11.2.8. 更新数据库 11.2.9. 获取自动生成的主键 11.3. 控制数据库连接 11.3.1. DataSourceUtils类 11.3.2. SmartDataSource接口 11.3.3. AbstractDataSource类 11.3.4. SingleConnectionDataSource类 11.3.5. DriverManagerDataSource类 11.3.6. TransactionAwareDataSourceProxy类 11.3.7. DataSourceTransactionManager类 11.3.8. NativeJdbcExtractor 11.4. JDBC批量操作 11.4.1. 使用JdbcTemplate进行批量操作 11.4.2. 使用SimpleJdbcTemplate进行批量操作 11.5. 通过使用SimpleJdbc类简化JDBC操作 11.5.1. 使用SimpleJdbcInsert插入数据 11.5.2. 使用SimpleJdbcInsert来获取自动生成的主键 11.5.3. 指定SimpleJdbcInsert所使用的字段 11.5.4. 使用SqlParameterSource提供参数值 11.5.5. 使用SimpleJdbcCall调用存储过程 11.5.6. 声明SimpleJdbcCall使用的参数 11.5.7. 如何定义SqlParameters 11.5.8. 使用SimpleJdbcCall调用内置函数 11.5.9. 使用SimpleJdbcCall返回的ResultSet/REF Cursor 11.6. 用Java对象来表达JDBC操作 11.6.1. SqlQuery类 11.6.2. MappingSqlQuery类 11.6.3. SqlUpdate类 11.6.4. StoredProcedure类 11.6.5. SqlFunction类 11.7. 参数和数据处理的基本原则 11.7.1. 为参数设置SQL类型信息 11.7.2. 处理BLOB 和 CLOB对象 11.7.3. 在IN语句中传入一组参数值 11.7.4. 处理复杂类型的存储过程调用 12. 使用ORM工具进行数据访问 12.1. 简介 12.2. Hibernate 12.2.1. 资源管理 12.2.2. 在Spring容器中创建 SessionFactory 12.2.3. The HibernateTemplate 12.2.4. 不使用回调的基于Spring的DAO实现 12.2.5. 基于Hibernate3的原生API实现DAO 12.2.6. 编程式的事务划分 12.2.7. 声明式的事务划分 12.2.8. 事务管理策略 12.2.9. 容器资源 vs 本地资源 12.2.10. 在应用服务器中使用Hibernate的注意事项 12.3. JDO 12.3.1. 建立PersistenceManagerFactory 12.3.2. JdoTemplate和JdoDaoSupport 12.3.3. 基于原生的JDO API实现DAO 12.3.4. 事务管理 12.3.5. JdoDialect 12.4. Oracle TopLink 12.4.1. SessionFactory 抽象层 12.4.2. TopLinkTemplate and TopLinkDaoSupport 12.4.3. 基于原生的TopLink API的DAO实现 12.4.4. 事务管理 12.5. iBATIS SQL Maps 12.5.1. 创建SqlMapClient 12.5.2. 使用 SqlMapClientTemplate 和 SqlMapClientDaoSupport 12.5.3. 基于原生的iBATIS API的DAO实现 12.6. JPA 12.6.1. 在Spring环境中建立JPA 12.6.2. JpaTemplate 和 JpaDaoSupport 12.6.3. 基于原生的JPA实现DAO 12.6.4. 异常转化 12.7. 事务管理 12.8. JpaDialect III. The Web 13. Web MVC framework Web框架 13.1. 概述 13.1.1. 与其他MVC实现框架的集成 13.1.2. Spring Web MVC框架的特点 13.2. DispatcherServlet 13.3. 控制器 13.3.1. AbstractController 和 WebContentGenerator 13.3.2. 其它的简单控制器 13.3.3. MultiActionController 13.3.4. 命令控制器 13.4. 处理器映射(handler mapping) 13.4.1. BeanNameUrlHandlerMapping 13.4.2. SimpleUrlHandlerMapping 13.4.3. 拦截器(HandlerInterceptor) 13.5. 视图与视图解析 13.5.1. 视图解析器(ViewResolver) 13.5.2. 视图解析链 13.5.3. 重定向(Rediret)到另一个视图 13.6. 本地化解析器 13.6.1. AcceptHeaderLocaleResolver 13.6.2. CookieLocaleResolver 13.6.3. SessionLocaleResolver 13.6.4. LocaleChangeInterceptor 13.7. 使用主题 13.7.1. 简介 13.7.2. 如何定义主题 13.7.3. 主题解析器 13.8. Spring对分段文件上传(multipart file upload)的支持 13.8.1. 介绍 13.8.2. 使用MultipartResolver 13.8.3. 在表单中处理分段文件上传 13.9. 使用Spring的表单标签库 13.9.1. 配置 13.9.2. form标签 13.9.3. input标签 13.9.4. checkbox标签 13.9.5. checkboxes标签 13.9.6. radiobutton标签 13.9.7. radiobuttons标签 13.9.8. password标签 13.9.9. select标签 13.9.10. option标签 13.9.11. options标签 13.9.12. textarea标签 13.9.13. hidden标签 13.9.14. errors标签 13.10. 处理异常 13.11. 惯例优先原则(convention over configuration) 13.11.1. 对控制器的支持:ControllerClassNameHandlerMapping 13.11.2. 对模型的支持:ModelMap(ModelAndView) 13.11.3. 对视图的支持:RequestToViewNameTranslator 13.12. 基于注解的控制器配置 13.12.1. 建立dispatcher实现注解支持 13.12.2. 使用@Controller定义一个控制器 13.12.3. 使用@RequestMapping映射请求 13.12.4. 使用@RequestParam绑定请求参数到方法参数 13.12.5. 使用@ModelAttribute提供一个从模型到数据的链接 13.12.6. 使用@SessionAttributes指定存储在会话中的属性 13.12.7. 自定义WebDataBinder初始化 13.13. 更多资源 14. 集成视图技术 14.1. 简介 14.2. JSP和JSTL 14.2.1. 视图解析器 14.2.2. 'Plain-old' JSPs versus JSTL 'Plain-old' JSP与JSTL 14.2.3. 帮助简化开发的额外的标签 14.3. Tiles 14.3.1. 需要的资源 14.3.2. 如何集成Tiles 14.4. Velocity和FreeMarker 14.4.1. 需要的资源 14.4.2. Context 配置 14.4.3. 创建模板 14.4.4. 高级配置 14.4.5. 绑定支持和表单处理 14.5. XSLT 14.5.1. 写在段首 14.5.2. 小结 14.6. 文档视图(PDF/Excel) 14.6.1. 简介 14.6.2. 配置和安装 14.7. JasperReports 14.7.1. 依赖的资源 14.7.2. 配置 14.7.3. 构造ModelAndView 14.7.4. 使用子报表 14.7.5. 配置Exporter的参数 15. 集成其它Web框架 15.1. 简介 15.2. 通用配置 15.3. JavaServer Faces 15.3.1. DelegatingVariableResolver 15.3.2. FacesContextUtils 15.4. Struts 15.4.1. ContextLoaderPlugin 15.4.2. ActionSupport Classes 15.5. Tapestry 15.5.1. 注入 Spring 托管的 beans 15.6. WebWork 15.7. 更多资源 16. Portlet MVC框架 16.1. 介绍 16.1.1. 控制器 - MVC中的C 16.1.2. 视图 - MVC中的V 16.1.3. Web作用范围的Bean 16.2. DispatcherPortlet 16.3. ViewRendererServlet 16.4. 控制器 16.4.1. AbstractController 和 PortletContentGenerator 16.4.2. 其它简单的控制器 16.4.3. Command控制器 16.4.4. PortletWrappingController 16.5. 处理器映射 16.5.1. PortletModeHandlerMapping 16.5.2. ParameterHandlerMapping 16.5.3. PortletModeParameterHandlerMapping 16.5.4. 增加 HandlerInterceptors 16.5.5. HandlerInterceptorAdapter 16.5.6. ParameterMappingInterceptor 16.6. 视图和它们的解析 16.7. Multipart文件上传支持 16.7.1. 使用 PortletMultipartResolver 16.7.2. 处理表单里的文件上传 16.8. 异常处理 16.9. Portlet应用的部署 IV. 整合 17. 使用Spring进行远程访问与Web服务 17.1. 简介 17.2. 使用RMI暴露服务 17.2.1. 使用RmiServiceExporter暴露服务 17.2.2. 在客户端链接服务 17.3. 使用Hessian或者Burlap通过HTTP远程调用服务 17.3.1. 为Hessian和co.配置DispatcherServlet 17.3.2. 使用HessianServiceExporter暴露你的bean 17.3.3. 在客户端连接服务 17.3.4. 使用Burlap 17.3.5. 对通过Hessian或Burlap暴露的服务使用HTTP Basic认证 17.4. 使用HTTP调用器暴露服务 17.4.1. Exposing the service object 17.4.2. 在客户端连接服务 17.5. Web Services 17.5.1. 使用JAX-RPC暴露基于servlet的web服务 17.5.2. 使用JAX-RPC访问web服务 17.5.3. 注册JAX-RPC Bean映射 17.5.4. 注册自己的JAX-RPC 处理器 17.5.5. 使用JAX-WS暴露基于servlet的web服务 17.5.6. 使用JAX-WS暴露单独web服务 17.5.7. 使用Spring支持的JAX-WS RI来暴露服务 17.5.8. 使用JAX-WS访问web服务 17.5.9. 使用XFire来暴露Web服务 17.6. JMS 17.6.1. 服务端配置 17.6.2. 客户端配置 17.7. 对远程接口不提供自动探测实现 17.8. 在选择这些技术时的一些考虑 18. Enterprise Java Beans (EJB) 集成 18.1. 简介 18.2. 访问EJB 18.2.1. 概念 18.2.2. 访问本地的无状态Session Bean(SLSB) 18.2.3. 访问远程SLSB 18.2.4. Accessing EJB 2.x SLSBs versus EJB 3 SLSBs 18.3. 使用Spring提供的辅助类实现EJB组件 18.3.1. EJB 2.x base classes 18.3.2. EJB 3 注入拦截 19. JMS (Java Message Service) 19.1. 简介 19.2. 使用Spring JMS 19.2.1. JmsTemplate 19.2.2. 连接工厂 19.2.3. 目的地管理 19.2.4. 消息侦听容器 19.2.5. 事务管理 19.3. 发送消息 19.3.1. 使用消息转换器 19.3.2. SessionCallback 和 ProducerCallback 19.4. 接收消息 19.4.1. 同步接收 19.4.2. 异步接收 - 消息驱动的POJO 19.4.3. SessionAwareMessageListener接口 19.4.4. MessageListenerAdapter 19.4.5. 事务中的消息处理 19.5. JCA消息端点的支持 19.6. JMS命名空间支持 20. JMX 20.1. 介绍 20.2. 将Bean暴露为JMX 20.2.1. 创建MBeanServer 20.2.2. 重用原有的MBeanServer 20.2.3. 延迟初始化的MBean 20.2.4. MBean的自动注册 20.2.5. 控制注册行为 20.3. 控制Bean的管理接口 20.3.1. MBeanInfoAssembler接口 20.3.2. 使用源码级元数据 20.3.3. 使用JDK 5.0的注解 20.3.4. 源代码级的元数据类型 20.3.5. AutodetectCapableMBeanInfoAssembler接口 20.3.6. 用Java接口定义管理接口 20.3.7. 使用MethodNameBasedMBeanInfoAssembler 20.4. 控制Bean的ObjectName 20.4.1. 从Properties读取Properties 20.4.2. 使用MetadataNamingStrategy 20.4.3. 元素 20.5. JSR-160连接器 20.5.1. 服务器端连接器 20.5.2. 客户端连接器 20.5.3. 基于Burlap/Hessian/SOAP的JMX 20.6. 通过代理访问MBean 20.7. 通知 20.7.1. 为通知注册监听器 20.7.2. 发布通知 20.8. 更多资源 21. JCA CCI 21.1. 简介 21.2. 配置CCI 21.2.1. 连接器配置 21.2.2. 在Spring中配置ConnectionFactory 21.2.3. 配置CCI连接 21.2.4. 使用一个 CCI 单连接 21.3. 使用Spring的 CCI访问支持 21.3.1. 记录转换 21.3.2. CciTemplate类 21.3.3. DAO支持 21.3.4. 自动输出记录生成 21.3.5. 总结 21.3.6. 直接使用一个CCI Connection接口和Interaction接口 21.3.7. CciTemplate 使用示例 21.4. 建模CCI访问为操作对象 21.4.1. MappingRecordOperation 21.4.2. MappingCommAreaOperation 21.4.3. 自动生成输出记录 21.4.4. 总结 21.4.5. MappingRecordOperation 使用示例 21.4.6. MappingCommAreaOperation 使用示例 21.5. 事务 22. Spring邮件抽象层 22.1. 简介 22.2. 使用Spring邮件抽象 22.2.1. MailSender 和 SimpleMailMessage 的基本用法 22.2.2. 使用 JavaMailSender 和 MimeMessagePreparator 22.3. 使用MimeMessageHelper 22.3.1. 发送附件和嵌入式资源(inline resources) 22.3.2. 使用模板来创建邮件内容 23. Spring中的定时调度(Scheduling)和线程池(Thread Pooling) 23.1. 简介 23.2. 使用OpenSymphony Quartz 调度器 23.2.1. 使用JobDetailBean 23.2.2. 使用 MethodInvokingJobDetailFactoryBean 23.2.3. 使用triggers和SchedulerFactoryBean来包装任务 23.3. 使用JDK Timer支持类 23.3.1. 创建定制的timers 23.3.2. 使用 MethodInvokingTimerTaskFactoryBean类 23.3.3. 最后:使用TimerFactoryBean来设置任务 23.4. SpringTaskExecutor抽象 23.4.1. TaskExecutor接口 23.4.2. TaskExecutor类型 23.4.3. 使用TaskExecutor 24. 动态语言支持 24.1. 介绍 24.2. 第一个示例 24.3. 定义动态语言支持的bean 24.3.1. 公共概念 24.3.2. JRuby beans 24.3.3. Groovy beans 24.3.4. BeanShell beans 24.4. 场景 24.4.1. Spring MVC控制器的脚本化 24.4.2. Validator的脚本化 24.5. Bits and bobs 24.5.1. AOP - 通知脚本化bean 24.5.2. 作用域 24.6. 更多的资源 25. 注解和源代码级的元数据支持 25.1. 简介 25.2. Spring的元数据支持 25.3. 注解 25.3.1. @Required 25.3.2. Spring中的其它@Annotations 25.4. Jakarta Commons Attributes集成 25.5. 元数据和Spring AOP自动代理 25.5.1. 基本原理 25.5.2. 声明式事务管理 V. 示例程序 26. 演示案例 26.1. 介绍 26.2. 使用动态语言实现的Spring MVC控制器 26.2.1. 构建与部署 26.3. 使用SimpleJdbcTemplate和@Repository实现DAO 26.3.1. 域对象 26.3.2. Data Access Object 26.3.3. 构建 A. XML Schema-based configuration A.1. Introduction A.2. XML Schema-based configuration A.2.1. Referencing the schemas A.2.2. The util schema A.2.3. The jee schema A.2.4. The lang schema A.2.5. The jms schema A.2.6. The tx (transaction) schema A.2.7. The aop schema A.2.8. The context schema A.2.9. The tool schema A.2.10. The beans schema A.3. Setting up your IDE A.3.1. Setting up Eclipse A.3.2. Setting up IntelliJ IDEA A.3.3. Integration issues B. Extensible XML authoring B.1. Introduction B.2. Authoring the schema B.3. Coding a NamespaceHandler B.4. Coding a BeanDefinitionParser B.5. Registering the handler and the schema B.5.1. 'META-INF/spring.handlers' B.5.2. 'META-INF/spring.schemas' B.6. Using a custom extension in your Spring XML configuration B.7. Meatier examples B.7.1. Nesting custom tags within custom tags B.7.2. Custom attributes on 'normal' elements B.8. Further Resources C. spring-beans-2.0.dtd D. spring.tld D.1. Introduction D.2. The bind tag D.3. The escapeBody tag D.4. The hasBindErrors tag D.5. The htmlEscape tag D.6. The message tag D.7. The nestedPath tag D.8. The theme tag D.9. The transform tag E. spring-form.tld E.1. Introduction E.2. The checkbox tag E.3. The checkboxes tag E.4. The errors tag E.5. The form tag E.6. The hidden tag E.7. The input tag E.8. The label tag E.9. The option tag E.10. The options tag E.11. The password tag E.12. The radiobutton tag E.13. The radiobuttons tag E.14. The select tag E.15. The textarea tag F. Spring 2.5开发手册中文化项目 F.1. 声明 F.2. 致谢 F.3. 参与人员 F.4. 项目历程 表格清单 3.1. bean定义 3.2. Autowiring modes 3.3. 依赖检查方式 3.4. Bean作用域 3.5. Feature Matrix特性表 3.6. 内置事件 3.7. 过滤器类型 4.1. Resource strings 5.1. 属性示例 5.2. 内建的PropertyEditors 6.1. DefaultContextLoadTimeWeaver LoadTimeWeaversDefaultContextLoadTimeWeaver类和LoadTimeWeavers接口 6.2. aspectj-weaving属性值 9.1. 有关的设置 9.2. 设置 9.3. @Transactional 注解的属性 13.1. WebApplicationContext中特殊的bean 13.2. DispatcherServlet初始化参数 13.3. AbstractController提供的功能 13.4. 视图解析器 13.5. CookieLocaleResolver的属性 13.6. ThemeResolver的实现 14.1. 宏定义表 14.2. JasperReports View Classes 14.3. JasperReportsMultiFormatView默认Mapping Key映射 16.1. WebApplicationContext中特殊的Bean 16.2. DispatcherPortlet 的初始化参数 16.3. AbstractController提供的功能 19.1. JMS listener 元素的属性 19.2. JMS 元素的属性 19.3. JMS 元素的属性 20.1. 注册行为 20.2. 源代码级的元数据类型 20.3. 源代码级的元数据参数 21.1. Usage of Interaction execute methods 21.2. Usage of Interaction execute methods A.1. Eclipse XML editors D.1. Attributes D.2. Attributes D.3. Attributes D.4. Attributes D.5. Attributes D.6. Attributes D.7. Attributes D.8. Attributes E.1. Attributes E.2. Attributes E.3. Attributes E.4. Attributes E.5. Attributes E.6. Attributes E.7. Attributes E.8. Attributes E.9. Attributes E.10. Attributes E.11. Attributes E.12. Attributes E.13. Attributes E.14. Attributes
前言 1. 简介 1.1. 概览 1.1.1. 使用场景 2. Spring 2.0和 2.5的新特性 2.1. 简介 2.2. 控制反转(IoC)容器 2.2.1. 新的bean作用域 2.2.2. 更简单的XML配置 2.2.3. 可扩展的XML编写 2.2.4. Annotation(注解)驱动配置 2.2.5. 在classpath中自动搜索组件 2.3. 面向切面编程(AOP) 2.3.1. 更加简单的AOP XML配置 2.3.2. 对@AspectJ 切面的支持 2.3.3. 对bean命名pointcut( bean name pointcut element)的支持 2.3.4. 对AspectJ装载时织入(AspectJ load-time weaving)的支持 2.4. 中间层 2.4.1. 在XML里更为简单的声明性事务配置 2.4.2. 对Websphere 事务管理的完整支持 2.4.3. JPA 2.4.4. 异步的JMS 2.4.5. JDBC 2.5. Web层 2.5.1. Spring MVC合理的默认值 2.5.2. Portlet 框架 2.5.3. 基于Annotation的控制器 2.5.4. Spring MVC的表单标签库 2.5.5. 对Tiles 2 支持 2.5.6. 对JSF 1.2支持 2.5.7. JAX-WS支持 2.6. 其他 2.6.1. 动态语言支持 2.6.2. 增强的测试支持 2.6.3. JMX 支持 2.6.4. 将Spring 应用程序上下文部署为JCA adapter 2.6.5. 计划任务 2.6.6. 对Java 5 (Tiger) 支持 2.7. 移植到Spring 2.5 2.7.1. 改变 2.8. 更新的样例应用 2.9. 改进的文档 I. 核心技术 3. IoC(控制反转)容器 3.1. 简介 3.2. 基本原理 - 容器和bean 3.2.1. 容器 3.2.2. 实例化容器 3.2.3. 多种bean 3.2.4. 使用容器 3.3. 依赖 3.3.1. 注入依赖 3.3.2. 依赖配置详解 3.3.3. 使用depends-on 3.3.4. 延迟初始化bean 3.3.5. 自动装配(autowire)协作者 3.3.6. 依赖检查 3.3.7. 方法注入 3.4. Bean的作用域 3.4.1. Singleton作用域 3.4.2. Prototype作用域 3.4.3. Singleton beans和prototype-bean的依赖 3.4.4. 其他作用域 3.4.5. 自定义作用域 3.5. 定制bean特性 3.5.1. 生命周期回调 3.5.2. 了解自己 3.6. bean定义的继承 3.7. 容器扩展点 3.7.1. 用BeanPostProcessor定制bean 3.7.2. 用BeanFactoryPostProcessor定制配置元数据 3.7.3. 使用FactoryBean定制实例化逻辑 3.8. The ApplicationContext 3.8.1. BeanFactory 还是 ApplicationContext? 3.8.2. 利用MessageSource实现国际化 3.8.3. 事件 3.8.4. 底层资源的访问 3.8.5. ApplicationContext在WEB应用中的实例化 3.9. 粘合代码和可怕的singleton 3.10. 以J2EE RAR文件的形式部署Spring ApplicationContext 3.11. 基于注解(Annotation-based)的配置 3.11.1. @Autowired 3.11.2. 基于注解的自动连接微调 3.11.3. CustomAutowireConfigurer 3.11.4. @Resource 3.11.5. @PostConstruct 与 @PreDestroy 3.12. 对受管组件的Classpath扫描 3.12.1. @Component和更多典型化注解 3.12.2. 自动检测组件 3.12.3. 使用过滤器自定义扫描 3.12.4. 自动检测组件的命名 3.12.5. 为自动检测的组件提供一个作用域 3.12.6. 用注解提供限定符元数据 3.13. 注册一个LoadTimeWeaver 4. 资源 4.1. 简介 4.2. Resource接口 4.3. 内置 Resource 实现 4.3.1. UrlResource 4.3.2. ClassPathResource 4.3.3. FileSystemResource 4.3.4. ServletContextResource 4.3.5. InputStreamResource 4.3.6. ByteArrayResource 4.4. ResourceLoader接口 4.5. ResourceLoaderAware 接口 4.6. 把Resource作为属性来配置 4.7. Application context 和Resource 路径 4.7.1. 构造application context 4.7.2. Application context构造器中资源路径的通配符 4.7.3. FileSystemResource 说明 5. 校验,数据绑定,BeanWrapper,与属性编辑器 5.1. 简介 5.2. 使用Spring的Validator接口进行校验 5.3. 从错误代码到错误信息 5.4. Bean处理和BeanWrapper 5.4.1. 设置和获取属性值以及嵌套属性 5.4.2. 内建的PropertyEditor实现 6. 使用Spring进行面向切面编程(AOP) 6.1. 简介 6.1.1. AOP概念 6.1.2. Spring AOP的功能和目标 6.1.3. AOP代理 6.2. @AspectJ支持 6.2.1. 启用@AspectJ支持 6.2.2. 声明一个切面 6.2.3. 声明一个切入点(pointcut) 6.2.4. 声明通知 6.2.5. 引入(Introduction) 6.2.6. 切面实例化模型 6.2.7. 例子 6.3. 基于Schema的AOP支持 6.3.1. 声明一个切面 6.3.2. 声明一个切入点 6.3.3. 声明通知 6.3.4. 引入 6.3.5. 切面实例化模型 6.3.6. Advisor 6.3.7. 例子 6.4. AOP声明风格的选择 6.4.1. Spring AOP还是完全用AspectJ? 6.4.2. Spring AOP中使用@AspectJ还是XML? 6.5. 混合切面类型 6.6. 代理机制 6.6.1. 理解AOP代理 6.7. 以编程方式创建@AspectJ代理 6.8. 在Spring应用中使用AspectJ 6.8.1. 在Spring中使用AspectJ进行domain object的依赖注入 6.8.2. Spring中其他的AspectJ切面 6.8.3. 使用Spring IoC来配置AspectJ的切面 6.8.4. 在Spring应用中使用AspectJ加载时织入(LTW) 6.9. 更多资源 7. Spring AOP APIs 7.1. 简介 7.2. Spring中的切入点API 7.2.1. 概念 7.2.2. 切入点运算 7.2.3. AspectJ切入点表达式 7.2.4. 便利的切入点实现 7.2.5. 切入点的超类 7.2.6. 自定义切入点 7.3. Spring的通知API 7.3.1. 通知的生命周期 7.3.2. Spring里的通知类型 7.4. Spring里的Advisor API 7.5. 使用ProxyFactoryBean创建AOP代理 7.5.1. 基础 7.5.2. JavaBean属性 7.5.3. 基于JDK和CGLIB的代理 7.5.4. 对接口进行代理 7.5.5. 对类进行代理 7.5.6. 使用“全局”通知器 7.6. 简化代理定义 7.7. 使用ProxyFactory通过编程创建AOP代理 7.8. 操作被通知对象 7.9. 使用“自动代理(autoproxy)”功能 7.9.1. 自动代理bean定义 7.9.2. 使用元数据驱动的自动代理 7.10. 使用TargetSource 7.10.1. 热交换目标源 7.10.2. 池化目标源 7.10.3. 原型目标源 7.10.4. ThreadLocal目标源 7.11. 定义新的Advice类型 7.12. 更多资源 8. 测试 8.1. 简介 8.2. 单元测试 8.2.1. Mock对象 8.2.2. 单元测试支持类 8.3. 集成测试 8.3.1. 概览 8.3.2. 使用哪个支持框架 8.3.3. 通用目标 8.3.4. JDBC测试支持 8.3.5. 常用注解 8.3.6. JUnit 3.8遗留支持 8.3.7. Spring TestContext Framework 8.3.8. PetClinic示例 8.4. 更多资源 II. 中间层数据访问 9. 事务管理 9.1. 简介 9.2. 动机 9.3. 关键抽象 9.4. 使用资源同步的事务 9.4.1. 高层次方案 9.4.2. 低层次方案 9.4.3. TransactionAwareDataSourceProxy 9.5. 声明式事务管理 9.5.1. 理解Spring的声明式事务管理实现 9.5.2. 第一个例子 9.5.3. 回滚 9.5.4. 为不同的bean配置不同的事务语义 9.5.5. 有关的设置 9.5.6. 使用 @Transactional 9.5.7. 事务传播 9.5.8. 通知事务操作 9.5.9. 结合AspectJ使用 @Transactional 9.6. 编程式事务管理 9.6.1. 使用TransactionTemplate 9.6.2. 使用PlatformTransactionManager 9.7. 选择编程式事务管理还是声明式事务管理 9.8. 与特定应用服务器集成 9.8.1. IBM WebSphere 9.8.2. BEA WebLogic 9.8.3. Oracle OC4J 9.9. 常见问题的解决方法 9.9.1. 对一个特定的 DataSource 使用了错误的事务管理器 9.10. 更多的资源 10. DAO支持 10.1. 简介 10.2. 一致的异常层次 10.3. 一致的DAO支持抽象类 11. 使用JDBC进行数据访问 11.1. 简介 11.1.1. 选择一种工作模式 11.1.2. Spring JDBC包结构 11.2. 利用JDBC核心类控制JDBC的基本操作和错误处理 11.2.1. JdbcTemplate类 11.2.2. NamedParameterJdbcTemplate类 11.2.3. SimpleJdbcTemplate类 11.2.4. DataSource接口 11.2.5. SQLExceptionTranslator接口 11.2.6. 执行SQL语句 11.2.7. 执行查询 11.2.8. 更新数据库 11.2.9. 获取自动生成的主键 11.3. 控制数据库连接 11.3.1. DataSourceUtils类 11.3.2. SmartDataSource接口 11.3.3. AbstractDataSource类 11.3.4. SingleConnectionDataSource类 11.3.5. DriverManagerDataSource类 11.3.6. TransactionAwareDataSourceProxy类 11.3.7. DataSourceTransactionManager类 11.3.8. NativeJdbcExtractor 11.4. JDBC批量操作 11.4.1. 使用JdbcTemplate进行批量操作 11.4.2. 使用SimpleJdbcTemplate进行批量操作 11.5. 通过使用SimpleJdbc类简化JDBC操作 11.5.1. 使用SimpleJdbcInsert插入数据 11.5.2. 使用SimpleJdbcInsert来获取自动生成的主键 11.5.3. 指定SimpleJdbcInsert所使用的字段 11.5.4. 使用SqlParameterSource提供参数值 11.5.5. 使用SimpleJdbcCall调用存储过程 11.5.6. 声明SimpleJdbcCall使用的参数 11.5.7. 如何定义SqlParameters 11.5.8. 使用SimpleJdbcCall调用内置函数 11.5.9. 使用SimpleJdbcCall返回的ResultSet/REF Cursor 11.6. 用Java对象来表达JDBC操作 11.6.1. SqlQuery类 11.6.2. MappingSqlQuery类 11.6.3. SqlUpdate类 11.6.4. StoredProcedure类 11.6.5. SqlFunction类 11.7. 参数和数据处理的基本原则 11.7.1. 为参数设置SQL类型信息 11.7.2. 处理BLOB 和 CLOB对象 11.7.3. 在IN语句中传入一组参数值 11.7.4. 处理复杂类型的存储过程调用 12. 使用ORM工具进行数据访问 12.1. 简介 12.2. Hibernate 12.2.1. 资源管理 12.2.2. 在Spring容器中创建 SessionFactory 12.2.3. The HibernateTemplate 12.2.4. 不使用回调的基于Spring的DAO实现 12.2.5. 基于Hibernate3的原生API实现DAO 12.2.6. 编程式的事务划分 12.2.7. 声明式的事务划分 12.2.8. 事务管理策略 12.2.9. 容器资源 vs 本地资源 12.2.10. 在应用服务器中使用Hibernate的注意事项 12.3. JDO 12.3.1. 建立PersistenceManagerFactory 12.3.2. JdoTemplate和JdoDaoSupport 12.3.3. 基于原生的JDO API实现DAO 12.3.4. 事务管理 12.3.5. JdoDialect 12.4. Oracle TopLink 12.4.1. SessionFactory 抽象层 12.4.2. TopLinkTemplate and TopLinkDaoSupport 12.4.3. 基于原生的TopLink API的DAO实现 12.4.4. 事务管理 12.5. iBATIS SQL Maps 12.5.1. 创建SqlMapClient 12.5.2. 使用 SqlMapClientTemplate 和 SqlMapClientDaoSupport 12.5.3. 基于原生的iBATIS API的DAO实现 12.6. JPA 12.6.1. 在Spring环境中建立JPA 12.6.2. JpaTemplate 和 JpaDaoSupport 12.6.3. 基于原生的JPA实现DAO 12.6.4. 异常转化 12.7. 事务管理 12.8. JpaDialect III. The Web 13. Web MVC framework Web框架 13.1. 概述 13.1.1. 与其他MVC实现框架的集成 13.1.2. Spring Web MVC框架的特点 13.2. DispatcherServlet 13.3. 控制器 13.3.1. AbstractController 和 WebContentGenerator 13.3.2. 其它的简单控制器 13.3.3. MultiActionController 13.3.4. 命令控制器 13.4. 处理器映射(handler mapping) 13.4.1. BeanNameUrlHandlerMapping 13.4.2. SimpleUrlHandlerMapping 13.4.3. 拦截器(HandlerInterceptor) 13.5. 视图与视图解析 13.5.1. 视图解析器(ViewResolver) 13.5.2. 视图解析链 13.5.3. 重定向(Rediret)到另一个视图 13.6. 本地化解析器 13.6.1. AcceptHeaderLocaleResolver 13.6.2. CookieLocaleResolver 13.6.3. SessionLocaleResolver 13.6.4. LocaleChangeInterceptor 13.7. 使用主题 13.7.1. 简介 13.7.2. 如何定义主题 13.7.3. 主题解析器 13.8. Spring对分段文件上传(multipart file upload)的支持 13.8.1. 介绍 13.8.2. 使用MultipartResolver 13.8.3. 在表单中处理分段文件上传 13.9. 使用Spring的表单标签库 13.9.1. 配置 13.9.2. form标签 13.9.3. input标签 13.9.4. checkbox标签 13.9.5. checkboxes标签 13.9.6. radiobutton标签 13.9.7. radiobuttons标签 13.9.8. password标签 13.9.9. select标签 13.9.10. option标签 13.9.11. options标签 13.9.12. textarea标签 13.9.13. hidden标签 13.9.14. errors标签 13.10. 处理异常 13.11. 惯例优先原则(convention over configuration) 13.11.1. 对控制器的支持:ControllerClassNameHandlerMapping 13.11.2. 对模型的支持:ModelMap(ModelAndView) 13.11.3. 对视图的支持:RequestToViewNameTranslator 13.12. 基于注解的控制器配置 13.12.1. 建立dispatcher实现注解支持 13.12.2. 使用@Controller定义一个控制器 13.12.3. 使用@RequestMapping映射请求 13.12.4. 使用@RequestParam绑定请求参数到方法参数 13.12.5. 使用@ModelAttribute提供一个从模型到数据的链接 13.12.6. 使用@SessionAttributes指定存储在会话中的属性 13.12.7. 自定义WebDataBinder初始化 13.13. 更多资源 14. 集成视图技术 14.1. 简介 14.2. JSP和JSTL 14.2.1. 视图解析器 14.2.2. 'Plain-old' JSPs versus JSTL 'Plain-old' JSP与JSTL 14.2.3. 帮助简化开发的额外的标签 14.3. Tiles 14.3.1. 需要的资源 14.3.2. 如何集成Tiles 14.4. Velocity和FreeMarker 14.4.1. 需要的资源 14.4.2. Context 配置 14.4.3. 创建模板 14.4.4. 高级配置 14.4.5. 绑定支持和表单处理 14.5. XSLT 14.5.1. 写在段首 14.5.2. 小结 14.6. 文档视图(PDF/Excel) 14.6.1. 简介 14.6.2. 配置和安装 14.7. JasperReports 14.7.1. 依赖的资源 14.7.2. 配置 14.7.3. 构造ModelAndView 14.7.4. 使用子报表 14.7.5. 配置Exporter的参数 15. 集成其它Web框架 15.1. 简介 15.2. 通用配置 15.3. JavaServer Faces 15.3.1. DelegatingVariableResolver 15.3.2. FacesContextUtils 15.4. Struts 15.4.1. ContextLoaderPlugin 15.4.2. ActionSupport Classes 15.5. Tapestry 15.5.1. 注入 Spring 托管的 beans 15.6. WebWork 15.7. 更多资源 16. Portlet MVC框架 16.1. 介绍 16.1.1. 控制器 - MVC中的C 16.1.2. 视图 - MVC中的V 16.1.3. Web作用范围的Bean 16.2. DispatcherPortlet 16.3. ViewRendererServlet 16.4. 控制器 16.4.1. AbstractController 和 PortletContentGenerator 16.4.2. 其它简单的控制器 16.4.3. Command控制器 16.4.4. PortletWrappingController 16.5. 处理器映射 16.5.1. PortletModeHandlerMapping 16.5.2. ParameterHandlerMapping 16.5.3. PortletModeParameterHandlerMapping 16.5.4. 增加 HandlerInterceptors 16.5.5. HandlerInterceptorAdapter 16.5.6. ParameterMappingInterceptor 16.6. 视图和它们的解析 16.7. Multipart文件上传支持 16.7.1. 使用 PortletMultipartResolver 16.7.2. 处理表单里的文件上传 16.8. 异常处理 16.9. Portlet应用的部署 IV. 整合 17. 使用Spring进行远程访问与Web服务 17.1. 简介 17.2. 使用RMI暴露服务 17.2.1. 使用RmiServiceExporter暴露服务 17.2.2. 在客户端链接服务 17.3. 使用Hessian或者Burlap通过HTTP远程调用服务 17.3.1. 为Hessian和co.配置DispatcherServlet 17.3.2. 使用HessianServiceExporter暴露你的bean 17.3.3. 在客户端连接服务 17.3.4. 使用Burlap 17.3.5. 对通过Hessian或Burlap暴露的服务使用HTTP Basic认证 17.4. 使用HTTP调用器暴露服务 17.4.1. Exposing the service object 17.4.2. 在客户端连接服务 17.5. Web Services 17.5.1. 使用JAX-RPC暴露基于servlet的web服务 17.5.2. 使用JAX-RPC访问web服务 17.5.3. 注册JAX-RPC Bean映射 17.5.4. 注册自己的JAX-RPC 处理器 17.5.5. 使用JAX-WS暴露基于servlet的web服务 17.5.6. 使用JAX-WS暴露单独web服务 17.5.7. 使用Spring支持的JAX-WS RI来暴露服务 17.5.8. 使用JAX-WS访问web服务 17.5.9. 使用XFire来暴露Web服务 17.6. JMS 17.6.1. 服务端配置 17.6.2. 客户端配置 17.7. 对远程接口不提供自动探测实现 17.8. 在选择这些技术时的一些考虑 18. Enterprise Java Beans (EJB) 集成 18.1. 简介 18.2. 访问EJB 18.2.1. 概念 18.2.2. 访问本地的无状态Session Bean(SLSB) 18.2.3. 访问远程SLSB 18.2.4. Accessing EJB 2.x SLSBs versus EJB 3 SLSBs 18.3. 使用Spring提供的辅助类实现EJB组件 18.3.1. EJB 2.x base classes 18.3.2. EJB 3 注入拦截 19. JMS (Java Message Service) 19.1. 简介 19.2. 使用Spring JMS 19.2.1. JmsTemplate 19.2.2. 连接工厂 19.2.3. 目的地管理 19.2.4. 消息侦听容器 19.2.5. 事务管理 19.3. 发送消息 19.3.1. 使用消息转换器 19.3.2. SessionCallback 和 ProducerCallback 19.4. 接收消息 19.4.1. 同步接收 19.4.2. 异步接收 - 消息驱动的POJO 19.4.3. SessionAwareMessageListener接口 19.4.4. MessageListenerAdapter 19.4.5. 事务中的消息处理 19.5. JCA消息端点的支持 19.6. JMS命名空间支持 20. JMX 20.1. 介绍 20.2. 将Bean暴露为JMX 20.2.1. 创建MBeanServer 20.2.2. 重用原有的MBeanServer 20.2.3. 延迟初始化的MBean 20.2.4. MBean的自动注册 20.2.5. 控制注册行为 20.3. 控制Bean的管理接口 20.3.1. MBeanInfoAssembler接口 20.3.2. 使用源码级元数据 20.3.3. 使用JDK 5.0的注解 20.3.4. 源代码级的元数据类型 20.3.5. AutodetectCapableMBeanInfoAssembler接口 20.3.6. 用Java接口定义管理接口 20.3.7. 使用MethodNameBasedMBeanInfoAssembler 20.4. 控制Bean的ObjectName 20.4.1. 从Properties读取Properties 20.4.2. 使用MetadataNamingStrategy 20.4.3. 元素 20.5. JSR-160连接器 20.5.1. 服务器端连接器 20.5.2. 客户端连接器 20.5.3. 基于Burlap/Hessian/SOAP的JMX 20.6. 通过代理访问MBean 20.7. 通知 20.7.1. 为通知注册监听器 20.7.2. 发布通知 20.8. 更多资源 21. JCA CCI 21.1. 简介 21.2. 配置CCI 21.2.1. 连接器配置 21.2.2. 在Spring中配置ConnectionFactory 21.2.3. 配置CCI连接 21.2.4. 使用一个 CCI 单连接 21.3. 使用Spring的 CCI访问支持 21.3.1. 记录转换 21.3.2. CciTemplate类 21.3.3. DAO支持 21.3.4. 自动输出记录生成 21.3.5. 总结 21.3.6. 直接使用一个CCI Connection接口和Interaction接口 21.3.7. CciTemplate 使用示例 21.4. 建模CCI访问为操作对象 21.4.1. MappingRecordOperation 21.4.2. MappingCommAreaOperation 21.4.3. 自动生成输出记录 21.4.4. 总结 21.4.5. MappingRecordOperation 使用示例 21.4.6. MappingCommAreaOperation 使用示例 21.5. 事务 22. Spring邮件抽象层 22.1. 简介 22.2. 使用Spring邮件抽象 22.2.1. MailSender 和 SimpleMailMessage 的基本用法 22.2.2. 使用 JavaMailSender 和 MimeMessagePreparator 22.3. 使用MimeMessageHelper 22.3.1. 发送附件和嵌入式资源(inline resources) 22.3.2. 使用模板来创建邮件内容 23. Spring中的定时调度(Scheduling)和线程池(Thread Pooling) 23.1. 简介 23.2. 使用OpenSymphony Quartz 调度器 23.2.1. 使用JobDetailBean 23.2.2. 使用 MethodInvokingJobDetailFactoryBean 23.2.3. 使用triggers和SchedulerFactoryBean来包装任务 23.3. 使用JDK Timer支持类 23.3.1. 创建定制的timers 23.3.2. 使用 MethodInvokingTimerTaskFactoryBean类 23.3.3. 最后:使用TimerFactoryBean来设置任务 23.4. SpringTaskExecutor抽象 23.4.1. TaskExecutor接口 23.4.2. TaskExecutor类型 23.4.3. 使用TaskExecutor 24. 动态语言支持 24.1. 介绍 24.2. 第一个示例 24.3. 定义动态语言支持的bean 24.3.1. 公共概念 24.3.2. JRuby beans 24.3.3. Groovy beans 24.3.4. BeanShell beans 24.4. 场景 24.4.1. Spring MVC控制器的脚本化 24.4.2. Validator的脚本化 24.5. Bits and bobs 24.5.1. AOP - 通知脚本化bean 24.5.2. 作用域 24.6. 更多的资源 25. 注解和源代码级的元数据支持 25.1. 简介 25.2. Spring的元数据支持 25.3. 注解 25.3.1. @Required 25.3.2. Spring中的其它@Annotations 25.4. Jakarta Commons Attributes集成 25.5. 元数据和Spring AOP自动代理 25.5.1. 基本原理 25.5.2. 声明式事务管理 V. 示例程序 26. 演示案例 26.1. 介绍 26.2. 使用动态语言实现的Spring MVC控制器 26.2.1. 构建与部署 26.3. 使用SimpleJdbcTemplate和@Repository实现DAO 26.3.1. 域对象 26.3.2. Data Access Object 26.3.3. 构建 A. XML Schema-based configuration A.1. Introduction A.2. XML Schema-based configuration A.2.1. Referencing the schemas A.2.2. The util schema A.2.3. The jee schema A.2.4. The lang schema A.2.5. The jms schema A.2.6. The tx (transaction) schema A.2.7. The aop schema A.2.8. The context schema A.2.9. The tool schema A.2.10. The beans schema A.3. Setting up your IDE A.3.1. Setting up Eclipse A.3.2. Setting up IntelliJ IDEA A.3.3. Integration issues B. Extensible XML authoring B.1. Introduction B.2. Authoring the schema B.3. Coding a NamespaceHandler B.4. Coding a BeanDefinitionParser B.5. Registering the handler and the schema B.5.1. 'META-INF/spring.handlers' B.5.2. 'META-INF/spring.schemas' B.6. Using a custom extension in your Spring XML configuration B.7. Meatier examples B.7.1. Nesting custom tags within custom tags B.7.2. Custom attributes on 'normal' elements B.8. Further Resources C. spring-beans-2.0.dtd D. spring.tld D.1. Introduction D.2. The bind tag D.3. The escapeBody tag D.4. The hasBindErrors tag D.5. The htmlEscape tag D.6. The message tag D.7. The nestedPath tag D.8. The theme tag D.9. The transform tag E. spring-form.tld E.1. Introduction E.2. The checkbox tag E.3. The checkboxes tag E.4. The errors tag E.5. The form tag E.6. The hidden tag E.7. The input tag E.8. The label tag E.9. The option tag E.10. The options tag E.11. The password tag E.12. The radiobutton tag E.13. The radiobuttons tag E.14. The select tag E.15. The textarea tag F. Spring 2.5开发手册中文化项目 F.1. 声明 F.2. 致谢 F.3. 参与人员 F.4. 项目历程 表格清单 3.1. bean定义 3.2. Autowiring modes 3.3. 依赖检查方式 3.4. Bean作用域 3.5. Feature Matrix特性表 3.6. 内置事件 3.7. 过滤器类型 4.1. Resource strings 5.1. 属性示例 5.2. 内建的PropertyEditors 6.1. DefaultContextLoadTimeWeaver LoadTimeWeaversDefaultContextLoadTimeWeaver类和LoadTimeWeavers接口 6.2. aspectj-weaving属性值 9.1. 有关的设置 9.2. 设置 9.3. @Transactional 注解的属性 13.1. WebApplicationContext中特殊的bean 13.2. DispatcherServlet初始化参数 13.3. AbstractController提供的功能 13.4. 视图解析器 13.5. CookieLocaleResolver的属性 13.6. ThemeResolver的实现 14.1. 宏定义表 14.2. JasperReports View Classes 14.3. JasperReportsMultiFormatView默认Mapping Key映射 16.1. WebApplicationContext中特殊的Bean 16.2. DispatcherPortlet 的初始化参数 16.3. AbstractController提供的功能 19.1. JMS listener 元素的属性 19.2. JMS 元素的属性 19.3. JMS 元素的属性 20.1. 注册行为 20.2. 源代码级的元数据类型 20.3. 源代码级的元数据参数 21.1. Usage of Interaction execute methods 21.2. Usage of Interaction execute methods A.1. Eclipse XML editors D.1. Attributes D.2. Attributes D.3. Attributes D.4. Attributes D.5. Attributes D.6. Attributes D.7. Attributes D.8. Attributes E.1. Attributes E.2. Attributes E.3. Attributes E.4. Attributes E.5. Attributes E.6. Attributes E.7. Attributes E.8. Attributes E.9. Attributes E.10. Attributes E.11. Attributes E.12. Attributes E.13. Attributes E.14. Attributes F.1. 参与人员列表

67,515

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧