zoukankan      html  css  js  c++  java
  • 11SpringMvc_一个Action中,写多个类似的业务控制方法

    我们要实现这么一个功能:

    编写两个表单,提交到同一个Action中的不同的处理方法中。比如注册和登录,都提交到UserAction这个控制类中。但是这两个提交由userAction这个控制类不同的方法去处理。

    案例结构如下:

    这个案例用到的文件有:1.UserActio.java(控制类)2.Spring.xml(总的配置文件)3.springmvc_006.xml(这个项目独有的配置文件)4.adduser.jsp(有两个表单的jsp页面)

    第一步:编写web.xml文件。

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
      <display-name>SpringMvc_10day_self</display-name>
      <!-- Spring提供了一个Filter专门用来解决Post提交中文的乱码问题 -->
       <filter>
         <filter-name>CharacterEncodingFilter</filter-name>
         <filter-class>
     org.springframework.web.filter.CharacterEncodingFilter
     </filter-class>
     <init-param>
        <param-name>encoding</param-name>
        <param-value>UTF-8</param-value>
     </init-param>
    </filter>
     <filter-mapping>
     <filter-name>CharacterEncodingFilter </filter-name>
     <url-pattern>/*</url-pattern>
     </filter-mapping>
    
     
    
     
     
      <servlet>
      <!--这个名字可以随便取得,但是这个名字取了之后,以后在 WEB-INF下面创建SpirngMVC的配置文件是,命名必须以这个开头,
      
      所以这里取名叫做DispatcherServlet,那么之后的xml文件取名必须为DispatcherServlet-servlet.xml(一个字都不能差)
      
      -->
      <servlet-name>DispatcherServlet</servlet-name>
      <servlet-class> org.springframework.web.servlet.DispatcherServlet</servlet-class>
     <!-- 通知DispatcherServlet去指定目录下找到springmvc.xml配置文件 -->
     <!-- 
     注意这里的  <param-name>contextConfigLocation</param-name>一个字母都不能有错
     一旦有错就会去WEB-INF下面去找
      -->
              <init-param>
                   <param-name>contextConfigLocation</param-name>
                  <param-value>classpath:spring.xml</param-value>
              </init-param>
     </servlet>
     <servlet-mapping>
       <servlet-name>DispatcherServlet</servlet-name>
        <url-pattern>*.action</url-pattern>
     
     </servlet-mapping>
    
     
      <welcome-file-list>
       
        <welcome-file>index.jsp</welcome-file>
      
      </welcome-file-list>
    </web-app>

    第二步:编写spring.xml文件

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xmlns:context="http://www.springframework.org/schema/context"
          xmlns:aop="http://www.springframework.org/schema/aop"
          xmlns:tx="http://www.springframework.org/schema/tx"
          xmlns:mvc="http://www.springframework.org/schema/mvc"
          xsi:schemaLocation="
          http://www.springframework.org/schema/beans 
          http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
          http://www.springframework.org/schema/context
          http://www.springframework.org/schema/context/spring-context-3.0.xsd
          http://www.springframework.org/schema/aop 
          http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
          http://www.springframework.org/schema/tx
          http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
          http://www.springframework.org/schema/mvc
          http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd"
    >
    <import resource="com/guigu/shen/Action6/springmvc_006.xml"/>
    </beans>

    第三步:编写com/guigu/shen/Action6/springmvc_006.xml文件

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
         
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xmlns:context="http://www.springframework.org/schema/context"
          xmlns:aop="http://www.springframework.org/schema/aop"
          xmlns:tx="http://www.springframework.org/schema/tx"
          xmlns:mvc="http://www.springframework.org/schema/mvc"
          xsi:schemaLocation="
          http://www.springframework.org/schema/beans 
          http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
          http://www.springframework.org/schema/context
          http://www.springframework.org/schema/context/spring-context-3.0.xsd
          http://www.springframework.org/schema/aop 
          http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
          http://www.springframework.org/schema/tx
          http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
          http://www.springframework.org/schema/mvc
          http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd"
    >
         <!-- 控制器(程序员)(必须配置)
    这么一配置的话系统就会去com.guigu.shen.Action6这个包下面去寻找有注解@Controller的类。

    --> <context:component-scan base-package="com.guigu.shen.Action6"/> <!-- <bean name="/hello.action" class="com.guigu.shen.Action5.HelloAction"></bean> --> <!-- 基于注解的映射器(可选) 这个类和以前的xml方式的类不同,专门是注解用的 --> <bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"/> <!-- 基于注解的适配器(可选) 这个类和以前的xml方式的类不同,专门是注解用的 --> <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"/> <!-- 视图解析器(可选) 这个类和以前的xml方式的类一样 --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> </bean> </beans>

    第四步:编写控制类UserAction.java。

    package com.guigu.shen.Action6;
    
    import org.springframework.stereotype.Controller;
    import org.springframework.ui.Model;
    import org.springframework.web.bind.annotation.RequestMapping;
    /**
     * 
     * 
    请求路径可以拆分为:根模块的名字+分模块的名字
    就是相当于当访问http://127.0.0.1:8080:项目名/user/register时就会进入到
    registerMethod方法。
    
     */
    @Controller
    @RequestMapping(value="/user")//根模块的请求名字
    public class UserAction {
        /*
         * 员工注册
         * 
         */
    @RequestMapping(value="/register")//分模块的请求名字
    public String registerMethod(Model model)
    {
        
        model.addAttribute("message", "员工注册成功");
        return "/jsp/success.jsp";
    }


      /*
         * 员工登录
         * 
         */

    @RequestMapping(value
    ="/login")//分模块的请求名字 public String loginMethod(Model model) { model.addAttribute("message", "员工登录成功"); return "/jsp/success.jsp"; } }

    第六步:测试 输入hhttp://127.0.0.1:8080/SpringMvc_10day_self/adduser.jsp

    出现

     按下注册按钮。会进入到http://127.0.0.1:8080/SpringMvc_10day_self/user/register.action。从而执行控制类UserAction里面的public String registerMethod(Model model)方法。

    按下登录按钮。会进入到http://127.0.0.1:8080/SpringMvc_10day_self/user/login.action。从而执行控制类UserAction里面的

    public String loginMethod(Model model)

    方法。

    总结:通过模块根路径 + 功能子路径 = 访问模块下子功能的路径

  • 相关阅读:
    ASP.NET前台代码绑定后台变量方法总结
    <%# Eval("name")%>与<%# Bind("name")%>
    验证数字的正则表达式集
    品高:C#与JAVASCRIPT函数的相互调用:1.如何在JavaScript访问C#函数? 2.如何在JavaScript访问C#变量? 3.如何在C#中访问JavaScript的已有变量? 4.如何在C#中访问JavaScript函数?
    Visual Web Developer 的自定义WebForm模板
    关键字加亮JS方法
    vss安装,设置以及与vs2005联合项目操作(转)
    删除SQL中重复行
    完全兼容的 鼠标滚轴缩放图片
    为循环的repeater的第一行加个样式
  • 原文地址:https://www.cnblogs.com/shenxiaoquan/p/5751281.html
Copyright © 2011-2022 走看看