zoukankan      html  css  js  c++  java
  • [刘阳Java]_Spring MVC中@RequestMapping用法_第2讲

    1. SpringMVC中的@RequestMapping是一个用来处理请求地址映射的注解,可用于类或方法上。用于类则表示所有响应请求的方法都以该地址作为父路径

    @RequestMapping("/test")
    public class TestController {
      @RequestMapping("/m01")
      public String m01() {
        return "m01";
      }
    }

    如果上面在类上配置了@RequestMapping,则整个URL访问的路径 http://localhost:8080/项目名/test/m01.do

    2. @RequestMapping常用用法

    • 方法级别上的用法
    package com.gxa.spmvc.controller;
    
    import java.io.IOException;
    import java.io.PrintWriter;
    
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RequestParam;
    
    import com.gxa.spmvc.entity.Student;
    
    /**
     * SpringMVC的控制器(业务控制器)
     * 定义的方法就是一个请求处理的方法
     * @author caleb
     *
     */
    @Controller
    public class TestController {
        
        /**
         * @RequestMapping主要是定义用户的url请求
         * @RequestMapping("/m01"), http://localhost:8080/springmvc/m01.do
         * 返回指就是一个逻辑视图名, 它遵循springmvc-web.xml视图解析器去寻找物理视图名(m01.jsp)
         * @return
         */
        @RequestMapping("/m01")
        public String m01() {
            return "m01";
        }
            
    }
    •  方法参数绑定的用法
    package com.gxa.spmvc.controller;
    
    import java.io.IOException;
    import java.io.PrintWriter;
    
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RequestParam;
    
    import com.gxa.spmvc.entity.Student;
    
    /**
     * SpringMVC的控制器(业务控制器)
     * 定义的方法就是一个请求处理的方法
     * @author caleb
     *
     */
    @Controller
    public class TestController {
        
        /**
         * 如果业务控制器的方法有参数,则方法中的参数就是可以接收url的传参
         * http://localhost:8080/springmvc/m02.do?id=123
         * @RequestParam
         * 1. required:是否必须要有这个参数
         * 2. value: 定义url的参数名称
         * 3. defaultValue:定义参数的默认值
         * @param id
         * @return
         */
        @RequestMapping("/m02")
        public String m02(@RequestParam(required=true,value="sid",defaultValue="100") String id) {
            System.out.println("id = " + id);
            return "m02";
        }
        
    }
    • 获取实体对象的用法,即:通过方法能够将表单提交的参数自动封装成JavaBean对象
    • package com.gxa.spmvc.controller;
      
      import java.io.IOException;
      import java.io.PrintWriter;
      
      import javax.servlet.http.HttpServletRequest;
      import javax.servlet.http.HttpServletResponse;
      
      import org.springframework.stereotype.Controller;
      import org.springframework.web.bind.annotation.RequestMapping;
      import org.springframework.web.bind.annotation.RequestParam;
      
      import com.gxa.spmvc.entity.Student;
      
      /**
       * SpringMVC的控制器(业务控制器)
       * 定义的方法就是一个请求处理的方法
       * @author caleb
       *
       */
      @Controller
      public class TestController {
          
          /**
           * 表单数据提交传递给Spring MVC可以利用JavaBean来接收数据
           * SpringMVC一键封装JavaBean
           * 关键点:表单中参数名称和JavaBean的属性一样
           * @param student
           * @return
           */
          @RequestMapping("/m03")
          public String m03(Student student) {
              System.out.println(student.getId());
              System.out.println(student.getSname());
              System.out.println(student.getT_id());
              return "m03";
          }
          
      }
    • 回调Servlet API用法
    package com.gxa.spmvc.controller;
    
    import java.io.IOException;
    import java.io.PrintWriter;
    
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RequestParam;
    
    import com.gxa.spmvc.entity.Student;
    
    /**
     * SpringMVC的控制器(业务控制器)
     * 定义的方法就是一个请求处理的方法
     * @author caleb
     *
     */
    @Controller
    public class TestController {
        
        /**
         * 让SpringMVC框架回调Servlet API接口
         * 在请求处理的方法上加入对应的Servlet API接口作为方法参数就可以了
         * @param request
         * @param response
         * @return
         * @throws IOException 
         */
        @RequestMapping("/m04")
        public void m04(HttpServletRequest request, HttpServletResponse response) throws IOException {
            String id = request.getParameter("id");
            String sname = request.getParameter("sname");
            String t_id = request.getParameter("t_id");
            PrintWriter out = response.getWriter();
            out.println(id + "  " + sname + "  " + t_id);
            out.flush();
            out.close();
        }
        
    }
    •  REST风格参数用法
    package com.gxa.spmvc.controller;
    
    import java.io.IOException;
    import java.io.PrintWriter;
    
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RequestParam;
    
    import com.gxa.spmvc.entity.Student;
    
    /**
     * SpringMVC的控制器(业务控制器)
     * 定义的方法就是一个请求处理的方法
     * @author caleb
     *
     */
    @Controller
    public class TestController {
        
        /**
         * 
         * @RequestMapping("/m01"), http://localhost:8080/springmvc/m01/123
         * URL最后面的参数123可以直接赋值给id,REST风格参数让URL传参更加优美
         * @return
         */
        @RequestMapping("/m01/{id}")
        public String m05(@PathVariable String id) {
        System.out.println("id = " + id);
            return "m01";
        }
            
    }

     源码地址下载:https://pan.baidu.com/s/1eSDZwFg

  • 相关阅读:
    数据访问 之 修改数据 (重要)---2017-04-27
    数据访问 之 删除操作 ------ 2017-04-27
    连接数据库的注册、登录----2017-04-26
    数据访问(创建链接、读取数据、例题)--2017-04-25
    C/S 和B/S 详解 --- 2017-04-25
    二阶段测试改错与反思(数据库+面向对象)----2017-04-24
    qq面板(仿版,未完待续中。。。。)---2017-04-24
    网站设计需要注意的20个常犯错误---2017-04-23
    数据库四大特性;
    数据库部分---查询-简单查询;
  • 原文地址:https://www.cnblogs.com/liuyangjava/p/6749804.html
Copyright © 2011-2022 走看看