Struts2+Spring2 整合

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>


寫一個LoginAction

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






發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章