`
8366
  • 浏览: 800014 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

spring 2.0.6整合struts 1.2.9

阅读更多

 

 

       

       spring 和struts整合 有3种方式,下面一一介绍,不管使用哪种方式,都需要在web.xml 中配置 spring的 监听器

 

 

<context-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>/WEB-INF/applicationContext.xml</param-value>
	</context-param>
	<listener>
		<listener-class>
			org.springframework.web.context.ContextLoaderListener
		</listener-class>
	</listener>

 

 

 

第一种:使用 Spring 的 ActionSupport 类整合 Struts

 

 a.在struts-config.xml中


 

<action path="/login" name="loginForm" scope="request"
                        type="com.demo.struts.actions.LoginAction"
                        input="/login.jsp">
                        <forward name="success" path="/welcome.jsp" />
                        <forward name="failure" path="/login.jsp" />
</action>

 

 

 b.在applicationContext.xml中

 

<bean id="userDAO" class="com.demo.hibernate.dao.UserDAO">
		<property name="sessionFactory">
			<ref local="sessionFactory" />
		</property>
	</bean>

<bean name="/login" class="com.demo.struts.actions.LoginAction">
		<property name="userDAO">
			<ref local="userDAO" />
		</property>
	</bean>
  

 

c.在action中 使用下面的方式得到bean

 

 

UserDAO userDAO=(UserDAO)getWebApplicationContext().getBean("userDAO");

 

 

 

 

第二种:使用 Spring 的 DelegatingRequestProcessor 覆盖 Struts 的 RequestProcessor

 

a.在struts-config.xml中


 

<action path="/login" name="loginForm" scope="request"
                                               input="/login.jsp">
                        <forward name="success" path="/welcome.jsp" />
                        <forward name="failure" path="/login.jsp" />
</action>

 
<controller processorClass="org.springframework.web.struts.DelegatingRequestProcessor" />

 

 

 b.在applicationContext.xml中

 

<bean id="userDAO" class="com.demo.hibernate.dao.UserDAO">
		<property name="sessionFactory">
			<ref local="sessionFactory" />
		</property>
	</bean>

<bean name="/login" class="com.demo.struts.actions.LoginAction">
		<property name="userDAO">
			<ref local="userDAO" />
		</property>
	</bean>

  

c.在action中 使用下面的注入属性的方式得到bean ,直接使用 userDAO.xxx 调用userDAO中的方法

 

protected UserDAO userDAO;

	Logger log = Logger.getLogger(this.getClass());

	public UserDAO getUserDAO() {
		return userDAO;
	}

	public void setUserDAO(UserDAO userDAO) {
		this.userDAO = userDAO;
	}

 

 

第三种:将 Struts Action 管理委托给 Spring 框架        

 

a.在struts-config.xml中


 

<action path="/login" name="loginForm" scope="request"
                        type="org.springframework.web.struts.DelegatingActionProxy"
                        input="/login.jsp">
                        <forward name="success" path="/welcome.jsp" />
                        <forward name="failure" path="/login.jsp" />
                </action>

 

 

 b.在applicationContext.xml中

 

<bean id="userDAO" class="com.demo.hibernate.dao.UserDAO">
		<property name="sessionFactory">
			<ref local="sessionFactory" />
		</property>
	</bean>

<bean name="/login" class="com.demo.struts.actions.LoginAction">
		<property name="userDAO">
			<ref local="userDAO" />
		</property>
	</bean>

  

c.在action中 使用下面的注入属性的方式得到bean ,直接使用 userDAO.xxx 调用userDAO中的方法

 

protected UserDAO userDAO;

	Logger log = Logger.getLogger(this.getClass());

	public UserDAO getUserDAO() {
		return userDAO;
	}

	public void setUserDAO(UserDAO userDAO) {
		this.userDAO = userDAO;
	}

 

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics