Struts2+Spring整合
Struts2和Spring整合,程序结构如下
- 列表显示
struts2版本
struts2+spring版本
- 追加Spring开发包ioc,aop,dao,spring-web.jar和applicationContext.xml
- 将Action组件扫描到Spring容器中
- 在web.xml配置ContextLoaderListener
- 引入struts2-spring-plugin.jar包
- 修改struts.xml中元素的class属性,改成Spring容器中Action对象的id名
-
利用JdbcTemplate编写DeptDao,给Action注入使用
- 编写实体类Dept
- 编写DeptDao接口
- 编写JdbcDeptDao实现类
- 配置JdbcDeptDao类,(扫描+注入JdbcTemplate)
- 配置JdbcTemplate和连接池(dbcp或c3p0)
- 给Action注入DeptDao使用
-
部门删除
/delete?id=xx-->Filter控制器-->DeleteAction-->DeptDao -->Result-->列表刷新(继续发出/list)
- 扩展DeptDao的delete方法
- 编写DeleteAction组件
- 在struts.xml配置< action>和< result>
Result组件
- JSP响应
<result name="" type="dispatcher">xxx.jsp</result>
- 转发 dispatcher
- 重定向 redirect
- Action响应(构建一个Action链)
请求-->Action1--Result-->Action2-->xxx.jsp
- 重定向请求调用下一个Action redirectAction
- 转发请求调用下一个Action chain
- Json响应
请求-->Action-->Result-->json字符串输出
<!--前提条件:需要导入struts2-json-plugin.jar包,<package extends="json-default">-->
<!--默认情况下,会将Action对象所有属性以json方式输出-->
<result name="success" type="json"></result>
<!--会将Action对象指定名字的属性以json方式输出-->
<result name="success" type="json">
<param name="root">属性名</param>
</result>
<!--会将Action对象指定名字的属性以json方式输出-->
<result name="success" type="json">
<param name="includeProperties">属性名1,属性名2</param>
</result>
- 字节流响应
请求-->Action-->Result-->将信息以字节流输出
例如:下载、验证码等功能
/image_code-->ImageCodeAction-->stream-->以字节方式往外输出
- Result组件原理(了解)
- 编写Result组件类,实现Result接口
- 在struts.xml中配置
- 在使用