您的位置:首页 > 编程语言 > Java开发

Struts2和Spring整合实例【转】

2014-03-18 14:54 405 查看
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>  

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>  

4)添加struts2-spring整合的插件:struts2-spring-plugin-2.0.12.jar,如果不使用这个插件,则需要在struts.xml里面配置: 

Xml代码  


<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>  

写一个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;  

    }  

}  

写一个Service 

Java代码  


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;  

    }  

}  

在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>  

在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>  

启动tomcat,分别输入hello和world,提交,结果为hello和world。说明struts2和spring整合成功。 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息