java,ssh三大框架整合例子ssh整合的时候,用spring接管action的时候,配置都没有出错呀,怎么老

ssh中整合,为什么将Action交由Spring托管,才可以在Action中使用依赖注入! - ITeye问答
ssh中整合,为什么将Action交由Spring托管,才可以在Action中使用依赖注入!
传统正确的整合方式:
struts-config.xml:
&struts-config&
&data-sources&
&form-beans&
&form-bean name="loginForm" type="com.yourcompany.struts.form.LoginForm"&
&/form-beans&
&action-mappings&
&action &br=""&
attribute="loginForm"
input="/form/login.jsp"
name="loginForm"
path="/login"
scope="request"
type="org.springframework.web.struts.DelegatingActionProxy"&
//使用代理
&forward name="show" path="/show.jsp"&
&/action-mappings&
&message-resources parameter="com.yourcompany.struts.ApplicationResources"&
&plug-in classname="org.springframework.web.struts.ContextLoaderPlugIn"&
&set-property property="contextConfigLocation" value="/WEB-INF/applicationContext.xml"&
&/plug-in&
&/struts-config&
applicationContext.xml:
&bean id="personDAO" class="com.deng.PersonDAO"&
&bean name="/login" class="com.yourcompany.struts.action.LogAction"&
&property name="personDAO" ref="personDAO"&
&/property&
&context-param&
&param-name&contextConfigLocation&/param-name&
&param-value&/WEB-INF/applicationContext*.xml&/param-value&
&/context-param&
&listener&
&listener-class&org.springframwork.web.content.ContextLoaderListener&/listener-class&
&/listener&
这样一来:我想在action里面注入server,只要在action里面
privaet PersonDAO personDAO;
public PersonDAO getPersonDAO() {
return personDAO;
public void setPersonDAO(PersonDAO personDAO) {
this.personDAO = personDAO;
就可以拿到personDAO对象想干吗就干吗了。。
我的问题是:
我前几天一个不小心有个问题没弄明白:为什么将Action交由Spring托管,才可以在Action中使用依赖注入!
struts-config.xml:
&action-mappings&
&action &br=""&
attribute="loginForm"
input="/form/login.jsp"
name="loginForm"
path="/login"
scope="request"
type="com.yourcompany.struts.action.LogAction"&
//不使用代理
&forward name="show" path="/show.jsp"&
applicationContext.xml:
&bean id="personDAO" class="com.deng.PersonDAO"&
&bean name="/login" class="com.yourcompany.struts.action.LogAction"&
//就象和&bean id="personDAO" class="com.deng.PersonDAO"&一样&property name="personDAO" ref="personDAO"&
&/property&
然后在action里面
privaet PersonDAO personDAO;
..get()和..set()居然拿到的personDAO是空。为什么??
为什么:&bean id="personDAO" class="com.deng.PersonDAO"&直接在spring里面直接写可以,而action非要托管才能注入,不能象server啊 dao之类的直接在applicationContext.xml里面写配置。
请大家教下我,谢谢了!
采纳的答案
struts框架来支持产生的
因为Action 类不是普通的类似于我们自己写的 dao层 或者service层 的类,
它是由Struts 框架来支持产生的,所以说不能简单的用类似于dao层或者 service层
的依赖注入方式来,所以要使用Spring 中的 DelegatingActionProxy(授权Action代理),实现了针对实际Action的调用代理,struts最终调用的将是由
spring管理的Action实例,这样客户端发送的各种请求就可以用spring的Ioc设计思
想实现了。
详细的你可以百度一下 DelegatingActionProxy 的意思,其实本身struts框架中也包含这个的。
不给Spring托管 还要让Spring帮你注入 你不觉得很奇怪么?
如果你没有配置 在请求Action的时候
spring 就拦截不到Action 所以无法执行依赖注入。
你不使用代理,Spring监听不到啊
不让spring侦听,spring读不到上下文,就不能动态给你生成类
肯定是全是空的
这就想你不启动tomcat,访问8080端口;肯定访问不到啊~
呵呵
已解决问题
未解决问题SSH三大框架整合(一)
1:构建WEB项目
2:构建数据库
3:加入依赖包
尽量不要依赖IDE,通过自己手动加包完成
&访问数据库需要的包:mysql的驱动包
&Hibernate的包:hibernate3.jar 核心包
依赖的必须包:antlr-2.7.6.jar& 用于解析成HQL语句的包
&&&&&&&&&&&&&&&&&
commons-collections-3.1.jar&
apache提供的包,提供对集合框架的增强
&&&&&&&&&&&&&&&&&
dom4j-1.6.1.jar 解析XML文件的包
&&&&&&&&&&&&&&&&&
javassist-3.9.0.GA.jar 动态修改字节码需要用到的包
&&&&&&&&&&&&&&&&&
jta-1.1.jar 用于JTA事务的包
slf4j-api-1.5.8.jar& 日志接口包&
---》依赖一定的实现包&
slf4j-log4j12-1.5.0.jar&&
另外一种实现包:slf4j-simple-1.5.10.jar
可选的包:c3p0-0.9.1.jar 用于创建C3P0连接池的包
&&&&ehcache-1.2.3.jar
:用于缓存实现的包
cglib-2.2.jar 动态修改字节码的包
Spring的包:spring.jar 核心包
&&&&&&&&&&&
aopalliance.jar& 使用Aop功能可以用到的包
&&&&&&&&&&&
aspectjrt.jar
&&&&&&&&&&&&&&&&&&&&
aspectjweaver.jar& 使用ASPECTJ表达式需要用到的包
&&&&&&&&&&&
如果是使用DBCP连接池的话,需要两个jar包
&&&&&&&&&&&
commons-dbcp.jar&&
commons-pool.jar
&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&
如果需要用到commons增加包的话,可以加入以下包
&&&&&&&&&&&
commons-beanutils.jar&
commons-lang.jar& commons-logging.jar
Struts2的包:commons-fileupload-1.2.1.jar&&
commons-io-1.3.2.jar
&&&&&&&&&&&
freemarker-2.3.13.jar :在Struts2 中默认使用的是FreeMarker模板引擎
&&&&&&&&&&&
ognl-2.6.11.jar& : Struts2中使用OGNL表达式
&&&&&&&&&&&
struts2-core-2.1.6.jar 核心包
&&&&&&&&&&&
xwork-2.1.2.jar& 核心包
struts2-spring-plugin-2.1.6.jar Struts2跟Spring整合需要的插件包
4:构建项目分包结构
5:放置配置文件
6:创建POJO和相对应的hbm.xml
7:修改空白的Hibernate.cfg..xml并创建表结构
8:创建DAO,SERVICE,ACTION
9:修改配置文件
&& ApplicationContext.xml
利用Spring去管理SessionFactroy,需要告知Hibernate.cfg.xml的文件路径
&bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"&
&property name="configLocation"
value="classpath:hibernate.cfg.xml"&&/property&
&!-- 配置GeneralDao,因为这个dao会被多个dao继承使用
&bean id="generalDao"
class="mon.GeneralDaoImpl"&
&property name="sessionFactory"
ref="sessionFactory"&&/property&
&!-- 创建事务管理器 --&
&bean id="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager"&
&property name="sessionFactory"
ref="sessionFactory"&&/property&
&!-- 定义Service层的事务传播机制 --&
&tx:advice id="serviceMethodAdvice"
transaction-manager="transactionManager"&
&tx:attributes&
&&&&&&&&&&
&tx:method name="find*"
read-only="true"/&
&&&&&&&&&&
&tx:method name="select*"
read-only="true"/&
&&&&&&&&&&
&tx:method name="query*"
read-only="true"/&
&&&&&&&&&&
&tx:method name="*"/&
&/tx:attributes&
&/tx:advice&
&!-- 利用aop定义对那些包中的哪些类的哪些方法准备进行事务增强
&aop:config&
&aop:pointcut id="serviceMethods"
expression="execution (* com.wanczy.service.*.*
&aop:advisor advice-ref="serviceMethodAdvice"
pointcut-ref="serviceMethods"/&
&/aop:config&
并且按照模块的分布进行applicationContext文件的配置
applicationContext_user.xml
&bean id="userDao"
class="com.wanczy.dao.impl.UserDaoImpl"
parent="generalDao"&&/bean&
&bean id="userService"
class="com.wanczy.service.impl.UserServiceImpl"&
&property name="userDao"
ref="userDao"&&/property&
&bean id="userAction"
class="com.wanczy.action.UserAction"&
&property name="userService"
ref="userService"&&/property&
Struts.xml
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。当前位置: > java三大框架书籍
3770538|Java EE 核心框架实战 Java EE编程 网页设计制作 Java EE从入门到精通 JavaEE实例教程 JavaEE实战经典书籍 编码程序设计
深入理解Java Web开发技术--探索基于主流框架的最佳组合(附光盘) 书籍正
布局Java EE企业级开发:寻觅框架和开发模式的完美整合 张元亮
计算机开发
新华书店正版畅销书籍
包邮 正版书籍!JavaScript框架设计 /司徒正美 著 Java 书籍 程序设计书
精通轻量级JAVA EE框架整合方案(附光盘) 畅销书籍 计算机 正版
精通轻量级JAVA EE框架整合方案(附光盘) 畅销书籍 计算机 正版
JAVA EE核心框架实战 畅销书籍 计算机 正版
JAVA EE核心框架实战 畅销书籍 计算机 正版
最近更新的...
友情链接:
& 看图网,,该页图片不可商用
在线图片处理软件开发,始创于09年,距今7年。DS:3/16/8
java三大框架书籍素材下载

我要回帖

更多关于 ssh ajax请求action 的文章

 

随机推荐