Struts2+Spring2 整合 創建一個Demo
1、整合struts2
1)導入struts2的jar包:commons-fileupload-1.2.2.jar 、commons-io-2.0.1.jar、commons-lang3-3.1.jar、commons-logging-1.1.1.jar、freemarker-2.3.19.jar
javassist-3.11.0.GA.jar(此包在下載包struts-2.3.8\apps\struts2-blank.war\WEB-INF\lib裏)、ognl-3.0.6.jar、struts2-core-2.3.8.jar、xwork-core-2.3.8.jar
struts2包下載地址:http://struts.apache.org/download.cgi#struts2311-SNAPSHOT
2)將struts.xml文件放置在Demo的src目錄下
3)在web.xml裏面配置struts2用到的核心過濾器
<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 和struts2的jar包struts2-spring-plugin-2.3.8.jar
spring 的jar包 下載地址:http://yinhe2726.iteye.com/blog/1192466
2)將applicationContext.xml文件放置在Demo的WEB-INF目錄下
3)在web.xml裏面配置spring用到的監聽器
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
4)添加struts2-spring整合的插件:struts2-spring-plugin-2.0.12.jar,如果不使用這個插件,則需要在struts.xml裏面配置:
<constant name="struts.objectFactory" value="org.apache.struts2.spring.StrutsSpringObjectFactory" />
3、測試struts2和spring2整合
<%@ 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>
package com.kyle.action;
import com.opensymphony.xwork2.ActionSupport;
import com.kyle.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
package com.kyle.service;
public interface LoginService {
boolean isLogin(String userName,String password);
}
寫一個Service的實現
package com.kyle.serviceImpl;
import com.kyle.service.LoginService;
public class LoginServiceImpl implements LoginService {
@Override
public boolean isLogin(String userName, String password) {
if("hello".equals(userName) && "world".equals(password)) {
System.out.println(userName+"***"+password);
return true;
}else
return false;
}
}
在struts.xml裏面配置:
<package name="struts" extends="struts-default">
<action name="Login" class="loginAction">
<result name="success">/result.jsp</result>
<result name="input">/login.jsp</result>
</action>
</package>
在applicationContext.xml裏面配置:
<bean id="loginService" class="com.kyle.serviceImpl.LoginServiceImpl"></bean>
<bean id="loginAction" class="com.kyle.action.LoginAction"
scope="prototype">
<property name="loginService" ref="loginService"></property>
</bean>
啓動tomcat,分別輸入hello和world,提交,結果爲hello和world。說明struts2和spring整合成功
源代碼下載地址:http://download.csdn.net/detail/kyle8525_nsn/5134282
轉載地址:http://lukuijun.iteye.com/blog/350750