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

原文地址:https://www.cnblogs.com/pocter/p/3684561.html