• 8. SpringMVC


    先来看下 这个注解是个啥:当请求的参数名称与Controller的业务方法参数名称不一致时,就需要通过@RequestParam注解显示的绑定。

    注解@RequestParam还有如下参数可以使用:

    value:与请求参数名称 

    required:此在指定的请求参数是否必须包括,默认是true,提交时如果没有此参数则报错 

    defaultValue:当没有指定请求参数时,则使用指定的默认值赋值

    有这么个 表单POST:

    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    <head>
        <title>Title</title>
    </head>
    <body>
    <form action="/ok" method="post">
        <input type="text" name="name1">
        <input type="submit">
    </form>
    </body>
    </html>

    然后我们 控制器是这样的:

    package com.bihu.Controller;
    
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.ResponseBody;
    
    @Controller
    public class TestController {
        @RequestMapping("/ok")
        @ResponseBody
        public void post(String name){      //注意这里是 name
            System.out.println(name);
        }
    }

    会发现  name 和 name1  不匹配 虽然成功交互 但是打印出来的是null ,那么@RequestParam 注解就登场了:

    package com.bihu.Controller;
    
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RequestParam;
    import org.springframework.web.bind.annotation.ResponseBody;
    
    @Controller
    public class TestController {
        @RequestMapping("/ok")
        @ResponseBody
        public void post(@RequestParam(value = "name1") String name){      //注意这里绑定了 name1 name就没用了啊!
            System.out.println(name);
        }
    }

    你参数绑定了 name1  那么 你在表单哪里 name = name 就会报错哦!!!! 所以 两个方式 你选一个。 这点千万注意啊。


    required:  这个属性的意思是说 如果你请求没有带任何的请求数据【为空】,那么这个属性为true 的话【默认是 true】,那么会报错,如果为false 则允许 这样做 但是参数肯定是null的.

    package com.bihu.Controller;
    
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RequestParam;
    import org.springframework.web.bind.annotation.ResponseBody;
    
    @Controller
    public class TestController {
        @RequestMapping("/ok")
        @ResponseBody
        public void post(@RequestParam(value = "name1",required = false) String name){
            System.out.println(name);
        }
    }

    defaultValue 如果是第二种 没有任何的请求数据 他就会用这个 defaultaValue 进行填充:

    package com.bihu.Controller;
    
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RequestParam;
    import org.springframework.web.bind.annotation.ResponseBody;
    
    @Controller
    public class TestController {
        @RequestMapping("/ok")
        @ResponseBody
        public void post(@RequestParam(value = "name1",required = false,defaultValue = "请求为空 我是默认值!") String name){
            System.out.println(name);
        }
    }

    完.

    本文来自博客园,作者:咸瑜,转载请注明原文链接:https://www.cnblogs.com/bi-hu/p/14971250.html

  • 相关阅读:
    MySql的常用命令
    yum命令配置及使用说明和常见问题处理
    oracle12c创建用户和表空间出现的问题
    oracle云部署
    ORA-12154: TNS:could not resolve the connect identifier specified
    Linux之iptables
    Linux之MySQL
    Linux之apache
    oracle查锁表
    cookie 和 HttpSession
  • 原文地址:https://www.cnblogs.com/bi-hu/p/14971250.html
Copyright © 2020-2023  润新知