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代码 <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> 2、整合spring 1)导入spring的jar包:spring.jar 2)将applicationContext.xml文件放置在OA工程的WEB-INF目录下。 3)在web.xml里面配置spring用到的监听器。 Xml代码 <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> 4)添加struts2-spring整合的插件:struts2-spring-plugin-2.0.12.jar,如果不使用这个插件,则需要在struts.xml里面配置: Xml代码 <constant name="struts.objectFactory" value="org.apache.struts2.spring.StrutsSpringObjectFactory" /> <constant name="struts.objectFactory" value="org.apache.struts2.spring.StrutsSpringObjectFactory" /> 3、测试struts2和spring整合对不对? 写一个jsp页面login.jsp来测试: 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> <%@ 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代码 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; } } 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代码 package com.struts2.service; public interface LoginService { boolean isLogin(String userName,String password); } package com.struts2.service; public interface LoginService { boolean isLogin(String userName,String password); } 写一个Service的实现 Java代码 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; } } 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代码 <package name="struts2" extends="struts-default"> <action name="Login" class="loginAction"> <result name="success">/result.jsp</result> <result name="input">/login.jsp</result> </action> </package> <package name="struts2" extends="struts-default"> <action name="Login" class="loginAction"> <result name="success">/result.jsp</result> <result name="input">/login.jsp</result> </action> </package> 在applicationContext.xml里面配置: Xml代码 <bean id="loginService" class="com.struts2.service.impl.LoginServiceImpl"></bean> <bean id="loginAction" class="com.struts2.action.LoginAction" scope="prototype"> <property name="loginService" ref="loginService"></property> </bean> <bean id="loginService" class="com.struts2.service.impl.LoginServiceImpl"></bean> <bean id="loginAction" class="com.struts2.action.LoginAction" scope="prototype"> <property name="loginService" ref="loginService"></property> </bean> 启动tomcat,分别输入hello和world,提交,结果为hello和world。说明struts2和spring整合成功。 本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/cpp_lzth/archive/2010/04/02/5444813.aspx#1417595