Struts2+Spring整合

、Struts2+Spring整合
    Struts2和Spring整合,创建一个OA工程
1、整合struts2
1)导入strut2的jar包:commons-logging-1.0.4.jar,freemarker-2.3.8.jar,ognl-2.6.11.jar,struts2-core-2.0.12.jar,xwork-2.06.jar。暂时导入这些jar包,到时候需要再倒入。
2)将struts.xml文件放置在OA工程的src目录下。
3)在web.xml里面配置struts2用到的核心过滤器。
Xml代码 复制代码 收藏代码
  1. <filter> 
  2.     <filter-name>struts2</filter-name> 
  3.     <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class> 
  4. </filter> 
  5. <filter-mapping> 
  6.     <filter-name>struts2</filter-name> 
  7.     <url-pattern>/*</url-pattern> 
  8. </filter-mapping> 
2、整合spring
1)导入spring的jar包:spring.jar
2)将applicationContext.xml文件放置在OA工程的WEB-INF目录下。
3)在web.xml里面配置spring用到的监听器。
Xml代码 复制代码 收藏代码
  1. <listener> 
  2.     <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 
  3. </listener> 

4)添加struts2-spring整合的插件:struts2-spring-plugin-2.0.12.jar,如果不使用这个插件,则需要在struts.xml里面配置:
Xml代码 复制代码 收藏代码
  1. <constant name="struts.objectFactory" value="org.apache.struts2.spring.StrutsSpringObjectFactory" /> 

3、测试struts2和spring整合对不对?
写一个jsp页面login.jsp来测试:
Html代码 复制代码 收藏代码
  1. <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> 
  2. <%@ taglib prefix="s" uri="/struts-tags" %> 
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
  4. <html> 
  5. <head> 
  6. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
  7. <title>Insert title here</title> 
  8. </head> 
  9. <body> 
  10.     <s:form action="Login" method="post"> 
  11.         <s:textfield name="userName" label="userName"></s:textfield> 
  12.         <s:password name="password" label="password"></s:password> 
  13.         <s:submit label="submit"></s:submit> 
  14.     </s:form> 
  15. </body> 
  16. </html> 
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
    <s:form action="Login" method="post">
        <s:textfield name="userName" label="userName"></s:textfield>
        <s:password name="password" label="password"></s:password>
        <s:submit label="submit"></s:submit>
    </s:form>
</body>
</html>
写一个LoginAction
Java代码 复制代码 收藏代码
  1. package com.struts2.action; 
  2.  
  3. import com.opensymphony.xwork2.ActionSupport; 
  4. import com.struts2.service.LoginService; 
  5. public class LoginAction extends ActionSupport { 
  6.     private LoginService loginService; 
  7.     private String userName; 
  8.     private String password; 
  9.     public void setLoginService(LoginService loginService) { 
  10.         this.loginService = loginService; 
  11.     } 
  12.     public String getUserName() { 
  13.         return userName; 
  14.     } 
  15.     public void setUserName(String userName) { 
  16.         this.userName = userName; 
  17.     } 
  18.     public String getPassword() { 
  19.         return password; 
  20.     } 
  21.     public void setPassword(String password) { 
  22.         this.password = password; 
  23.     } 
  24.     @Override 
  25.     public String execute() throws Exception { 
  26.         if(loginService.isLogin(userName, password)) 
  27.             return SUCCESS; 
  28.         else 
  29.             return INPUT; 
  30.     } 
package com.struts2.action;

import com.opensymphony.xwork2.ActionSupport;
import com.struts2.service.LoginService;
public class LoginAction extends ActionSupport {
	private LoginService loginService;
	private String userName;
	private String password;
	public void setLoginService(LoginService loginService) {
		this.loginService = loginService;
	}
	public String getUserName() {
		return userName;
	}
	public void setUserName(String userName) {
		this.userName = userName;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	@Override
	public String execute() throws Exception {
		if(loginService.isLogin(userName, password))
			return SUCCESS;
		else
			return INPUT;
	}
}
写一个Service
Java代码 复制代码 收藏代码
  1. package com.struts2.service; 
  2.  
  3. public interface LoginService { 
  4.     boolean isLogin(String userName,String password); 
package com.struts2.service;

public interface LoginService {
	boolean isLogin(String userName,String password);
}

写一个Service的实现
Java代码 复制代码 收藏代码
  1. package com.struts2.service.impl; 
  2.  
  3. import com.struts2.service.LoginService; 
  4. public class LoginServiceImpl implements LoginService { 
  5.  
  6.     public boolean isLogin(String userName, String password) { 
  7.         if("hello".equals(userName) && "world".equals(password)) 
  8.             return true
  9.         else  
  10.             return false
  11.     } 
package com.struts2.service.impl;

import com.struts2.service.LoginService;
public class LoginServiceImpl implements LoginService {

	public boolean isLogin(String userName, String password) {
		if("hello".equals(userName) && "world".equals(password))
			return true;
		else 
			return false;
	}
}
在struts.xml里面配置:
Xml代码 复制代码 收藏代码
  1. <package name="struts2" extends="struts-default"> 
  2.     <action name="Login" class="loginAction"> 
  3.         <result name="success">/result.jsp</result> 
  4.         <result name="input">/login.jsp</result> 
  5.     </action> 
  6. </package> 
在applicationContext.xml里面配置:
Xml代码 复制代码 收藏代码
  1. <bean id="loginService" class="com.struts2.service.impl.LoginServiceImpl"></bean> 
  2. <bean id="loginAction" class="com.struts2.action.LoginAction" scope="prototype"> 
  3.     <property name="loginService" ref="loginService"></property> 
  4. </bean> 
启动tomcat,分别输入hello和world,提交,结果为hello和world。说明struts2和spring整合成功。
height="60" src="/iframe_ggbd/794" frameborder="0" width="468" scrolling="no">
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值