zoukankan      html  css  js  c++  java
  • SpringMVC——映射请求参数

    Spring MVC 通过分析处理方法的签名,将 HTTP 请求信息绑定到处理方法的相应人参中。

    • @PathVariable
    • @RequestParam
    • @RequestHeader 等)

    SpringMVC 框架会将 HTTP 请求的信息绑定到相应的方法入参中,并根据方法的返回值类型做出相应的后续处理。

    一、 @RequestParam 绑定请求参数值

    在处理方法入参处使用 @RequestParam 可以把请求参数传递给请求方法

    • value:参数名–
    • required:是否必须。默认为 true, 表示请求参数中必须包含对应的参数,若不存在,将抛出异常
      /**
         * @RequestParam 来映射请求参数. value 值即请求参数的参数名 required 该参数是否必须. 默认为 true
         *               defaultValue 请求参数的默认值
         */
        @RequestMapping(value = "/testRequestParam")
        public String testRequestParam(@RequestParam(value = "username") String un,
                @RequestParam(value = "age", required = false, defaultValue = "0") int age) {
            System.out.println("testRequestParam, username: " + un + ", age: "
                    + age);
            return SUCCESS;
        }

    二、@RequestHeader 绑定请求报头的属性值


    请求头包含了若干个属性,服务器可据此获知客户端的信息,通过 @RequestHeader 即可将请求头中的属性值绑定到处理方法的入参中

      /**
         * 了解: 映射请求头信息 用法同 @RequestParam
         */
        @RequestMapping("/testRequestHeader")
        public String testRequestHeader(
                @RequestHeader(value = "Accept-Language") String al) {
            System.out.println("testRequestHeader, Accept-Language: " + al);
            return SUCCESS;
        }

     三、@CookieValue 绑定请求中的 Cookie 值 

    @CookieValue 可让处理方法入参绑定某个 Cookie 值

        /**
         * 了解:
         * @CookieValue: 映射一个 Cookie 值. 属性同 @RequestParam
         */
        @RequestMapping("/testCookieValue")
        public String testCookieValue(@CookieValue("JSESSIONID") String sessionId) {
            System.out.println("testCookieValue: sessionId: " + sessionId);
            return SUCCESS;
        }

    四、POJO 对象绑定请求参数值

     Spring MVC 会按请求参数名和 POJO 属性名进行自动匹配,自动为该对象填充属性值。支持级联属性。

      /**
         * Spring MVC 会按请求参数名和 POJO 属性名进行自动匹配, 自动为该对象填充属性值。支持级联属性。
         * 如user.address.city
         */
        @RequestMapping("/testPojo")
        public String testPojo(User user) {
            System.out.println("testPojo: " + user);
            return SUCCESS;
        }

    form表单

        <form action="springmvc/testPojo" method="post">
            username: <input type="text" name="username"/>
            <br>
            password: <input type="password" name="password"/>
            <br>
            email: <input type="text" name="email"/>
            <br>
            age: <input type="text" name="age"/>
            <br>
            city: <input type="text" name="address.city"/>
            <br>
            province: <input type="text" name="address.province"/>
            <br>
            <input type="submit" value="Submit"/>
        </form>

    五、使用 Servlet API 作为入参

    MVC 的 Handler 方法可以接受一下 ServletAPI 类型的参数

    • HttpServletRequest
    • HttpServletResponse
    • HttpSession
    • java.security.Principal
    • Locale
    • InputStream
    • OutputStream
    • Reader
    • Writer
    @RequestMapping("/testServletAPI")
        public void testServletAPI(HttpServletRequest request,
                HttpServletResponse response, Writer out) throws IOException {
            System.out.println("testServletAPI, " + request + ", " + response);
            out.write("hello springmvc");
    //        return SUCCESS;
        }
  • 相关阅读:
    如何在页面上输出html标签:符号实体【转】
    js sort方法根据数组中对象的某一个属性值进行排序【转】
    原生js判断某个元素是否有指定的class名的几种方法【转】
    js支持的编码转换方法【转】
    windows mysql提示:1045 access denied for user 'root'@'localhost' using password yes 解决方案【转】
    PHP 生成随机数rand()和mt_rand()的区别【转】
    php中var关键字用法【转】
    2020软件工程个人作业06——软件工程实践总结作业
    旺宝的家——事后诸葛亮
    旺宝的家—冲刺总结
  • 原文地址:https://www.cnblogs.com/realshijing/p/8120090.html
Copyright © 2011-2022 走看看