zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    请注意更新TensorFlow 2.0的旧代码
    tf.cast用法
    文件句柄
    Python学习(四)cPickle的用法
    机器都会学习了,你的神经网络还跑不动?来看看这些建议
    Hadoop集群管理之配置文件
    SQL之case when then用法
    关于2014
    Oracle之虚拟索引
    Linux之Ganglia源码安装
  • 原文地址:https://www.cnblogs.com/pocter/p/3684561.html
Copyright © 2011-2022 走看看