zoukankan      html  css  js  c++  java
  • 3.1、Spring和Struts2的结合使用

    一、配置Struts2:

      1、新建一个web项目,在src目录下新建com.st.bean/dao/service/action包,并在该包下面添加相应的接口及接口的实现类:

        a)、在bean下新建一个UserBean,包含userName、password、sex属性名,并添加set、get方法及toString方法。

        b)、dao层新建UserDao接口,并添加该接口是实现类UserDaoIm:

    1 public class UserDaoIm implements UserDao {
    2 
    3     public UserBean queryUser(UserBean user) {
    4         System.out.println("************"+user);
    5         return user;
    6     }
    7 }

        c)、在service层新建UserService接口,并添加该接口的实现类UserServiceIm:

     1 package com.st.service;
     2 
     3 import com.st.bean.UserBean;
     4 import com.st.dao.UserDao;
     5 
     6 public class UserServiceIm implements UserService {
     7 
     8     UserDao dao;
     9     public UserBean queryUser(UserBean user) {
    10         System.out.println("------------------------");
    11         return dao.queryUser(user);
    12     }
    13     public void setDao(UserDao dao) {
    14         this.dao = dao;
    15     }
    16 }

      2、在lib下面引入Struts2所需要的jar包,在web.xml文件中添加Struts2的拦截器:

     1   <!-- **********************************  -->
     2   <filter>
     3       <filter-name>struts2</filter-name>
     4       <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
     5   </filter>
     6   <filter-mapping>
     7       <filter-name>struts2</filter-name>
     8       <url-pattern>/*</url-pattern>
     9   </filter-mapping>
    10   <!-- **********************************  -->

      3、复制一个struts.xml文件到src目录下,并编辑<package>标签中的类容:

    1 <struts>
    2     <package name="user" namespace="/user" extends="struts-default" >
    3        <action name="userAction" class="com.st.action.UserAction" method="login">
    4           <result name="success">/main.jsp</result>
    5           <result name="error">/index.jsp</result>
    6        </action>
    7     </package>
    8 </struts>

      4、新建一个lojin.jsp文件

     1 <body>
     2     <form method="post" action="<%=request.getContextPath() %>/user/userAction" >
     3        <table>
     4            <tr>
     5                <td>用户名:</td>
     6                <td><input type="text" name="userName" value=""/></td>
     7            </tr>
     8            <tr>
     9                <td>&nbsp;别:</td>
    10                <td><input type="radio" name="sex" value="男"/>&nbsp;&nbsp;<input type="radio" name="sex" value="女"/></td>
    11            </tr>
    12            <tr>
    13                <td>&nbsp;码:</td>
    14                <td><input type="password" name="password" value=""/></td>
    15            </tr>
    16            <tr>
    17                <td><input type="submit" value="登陆"/></td>
    18                <td><input type="reset"  value="重置"/></td>
    19            </tr>
    20        </table>
    21     </form>
    22   </body>

      5、新建一个main.jsp文件,<body>标签中的类容为:<body> 登陆成功!<br> </body>

      6、在action包中新建一个UserAction类(注意UserAction类要继承ActionSupport类,并实现ModelDriven接口):

     1 public class UserAction extends ActionSupport implements ModelDriven<UserBean>{
     2     private UserBean user;
     3      UserService service ;
     4     public String login(){
     5         System.out.println("--------------"+user);
     6         return SUCCESS;
     7     }
     8     public void setService(UserService service) {
     9         this.service = service;
    10     }
    11     public UserBean getModel() {
    12         this.user = new UserBean();
    13         return user;
    14     }
    15 }

      7、配置好tomcat服务器后,进入login.jsp页面后,点击登录按钮,页面能成功跳转到man.jsp页面则表示Struts2已配置成功。

    二、配置Spring:

      1、将Spring需要的基本jar包引入到lib下面(注意宁少勿多的原则),将applicationContext.xml文件引入到src目录下面,并清空xml文件中原有的类容。在web.xml文件中添加下面的类容用来配置监听和加载applicationContext.xml文件:

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <web-app version="2.5" 
     3     xmlns="http://java.sun.com/xml/ns/javaee" 
     4     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     5     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
     6     http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
     7   <display-name></display-name>    
     8   <welcome-file-list>
     9     <welcome-file>index.jsp</welcome-file>
    10   </welcome-file-list>
    11   
    12   <context-param>
    13     <param-name>contextConfigLocation</param-name>
    14     <param-value>
    15         <!-- 注意:多个 .xml 文件中间用逗号分开 -->
    16         classpath:applicationContext.xml   
    17     </param-value>
    18   </context-param>  
    19   <!-- **********************************  -->
    20   <filter>
    21       <filter-name>struts2</filter-name>
    22       <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
    23   </filter>
    24   <filter-mapping>
    25       <filter-name>struts2</filter-name>
    26       <url-pattern>/*</url-pattern>
    27   </filter-mapping>
    28   <!-- **********************************  -->
    29   
    30   <!-- 监听 -->
    31   <listener>
    32         <listener-class>
    33             org.springframework.web.context.ContextLoaderListener
    34         </listener-class>
    35   </listener>  
    36 </web-app>

      2、编辑applicationContext.xml中的类容:

    1     <bean id="userDao" class="com.st.dao.UserDaoIm">
    2     </bean>
    3     <bean id="userService" class="com.st.service.UserServiceIm">
    4         <property name="dao" ref="userDao" />
    5     </bean>
    6     <bean id="userAction" class="com.st.action.UserAction">
    7         <property name="service" ref="userService"/>
    8     </bean>

      3、现在因为有了Spring,所以UserAction这个类将由Spring的容器生成,所以在struts.xml文件中的UserAction这个类就直接可以使用了,故修改struts.xml文件中的内容为:

    1     <package name="user" namespace="/user" extends="struts-default" >
    2        <!-- 注意:现在的class引用的是applicationContext.xml中的userAction -->
    3        <action name="userAction" class="userAction" method="login">  
    4           <result name="success">/main.jsp</result>
    5           <result name="error">/index.jsp</result>
    6        </action>
    7     </package>

      4、修改UserAction中的类容,使dao-service-action层之间存在联系(即模拟了一个用户登录的过程):

     1 public class UserAction extends ActionSupport implements ModelDriven<UserBean>{
     2     private UserBean user;
     3     private UserService service ;
     4 
     5     public String login(){
     6         service.queryUser(user);
     7         return SUCCESS;
     8     }
     9     public void setService(UserService service) {
    10         this.service = service;
    11     }
    12 
    13     public UserBean getModel() {
    14         this.user = new UserBean();
    15         
    16         return user;
    17     }
    18 }

      5、现在启动Tomcat服务器,他会报这样一个错误:

    Caused by: Action class [userAction] not found - action - file:/D:/JAVA/JAVA/tomcat/tomcat-7.0.65-windows-x64/apache-tomcat-7.0.65/webapps/Spring_Struts2/WEB-INF/classes/struts.xml:9:68

      即struts.xml文件中的第9行中找不到userAction这个类,这是因为Spring个Struts之间还没有建立相应的联系,这时引入一个“struts2-spring-plugin-2.1.8.1.jar”包(在Struts2里面有),即链接Spring的和Struts的支持包。这时在开启服务器,如果还有缺少的jar包按照提示引入。

      6、在浏览器中打开login.jsp页面,填写相应的登陆信息后按登录按钮,如果页面跳转成功,且在控制台打印了UserDaoIm中的提示信息,则表示Spring和Struts2的融合成功。

      可以看下UserDaoIm中的类容为:

      

      按登录按钮后控制台打印的信息为:

      

  • 相关阅读:
    mybatis 梳理9--别名
    mybatis 梳理8--多个参数 @Param
    mybatis 梳理7--map的使用 (很好用)
    mybatis 梳理6--模糊查询
    mybatis 梳理5-- 增删改查 基于注解 (少)
    mybatis 梳理4--增删改查 基于配置文件(多)
    mybatis 梳理3--搭建环境 小栗子 结合 梳理10 复习
    mybatis 梳理2--代理设计模式 静态代理、动态代理(Proxy) (懵)
    mybatis 梳理1--文档官网、简介、持久化、持久层、持久层框架
    梳理5--核心配置文件pom 基础配置、构建配置、插件(记得!)、区别dependencies 和 dependencyManagement
  • 原文地址:https://www.cnblogs.com/czj-zhm/p/5892234.html
Copyright © 2011-2022 走看看