美文网首页
Spring mvc 官方教程

Spring mvc 官方教程

作者: 简洁心飞 | 来源:发表于2019-02-25 12:49 被阅读0次
    <form action="/Test" method="get">
        request param Test<br>
        用户名称: <input type="text" name="username"><br>
        用户密码: <input type="text" name="password"><br>
        <input type="submit" value="提交">
    </form>
    
    创建资源表示类 -- 实体类
    创建资源控制器 -- 控制器
    
    
    
    
    @RestController
    public class GreetingController {
        private static final String template = "Hello, %s!";
        private final AtomicLong counter = new AtomicLong();
        @RequestMapping("/greeting")
        public Greeting greeting(@RequestParam(value="name", defaultValue="World") String name) {
            // http://127.0.0.1:8080/greeting?name=xin yue
            return new Greeting(counter.incrementAndGet(), String.format(template, name));
        }
    }
    
    @RequestParam
    GET和POST请求传的参数会自动转换赋值到@RequestParam 所注解的变量上
    @RequestParam用于将指定的请求参数赋值给方法中的形参。  
    @RequestParam用来处理Content-Type: 为 application/x-www-form-urlencoded编码的内容。提交方式为get或post。(Http协议中,如果不指定Content-Type,则默认传递的参数就是application/x-www-form-urlencoded类型)
    @RequestParam实质是将Request.getParameter() 中的Key-Value参数Map利用Spring的转化机制ConversionService配置,转化成参数接收对象或字段。
    get方式中query String的值,和post方式中body data的值都会被Servlet接受到并转化到Request.getParameter()参数集中,所以@RequestParam可以获取的到。
    org.springframework.web.bind.annotation.RequestParam
    
    @RequestBody注解可以接收json格式的数据,并将其转换成对应的数据类型.
    @RequestBody处理HttpEntity传递过来的数据,一般用来处理非Content-Type: application/x-www-form-urlencoded编码格式的数据.
    GET请求中,因为没有HttpEntity,所以@RequestBody并不适用.
    POST请求中,通过HttpEntity传递的参数,必须要在请求头中声明数据的类型Content-Type,SpringMVC通过使用HandlerAdapter 配置的HttpMessageConverters来解析HttpEntity中的数据,然后绑定到相应的bean上.
    
    @ModelAttribute注解类型将参数绑定到Model对象.
    
    当前台界面使用GET或POST方式提交数据时,数据编码格式由请求头的ContentType指定。分为以下几种情况:
    1. application/x-www-form-urlencoded,这种情况的数据@RequestParam、@ModelAttribute可以处理,@RequestBody也可以处理。
    2. multipart/form-data,@RequestBody不能处理这种格式的数据。(form表单里面有文件上传时,必须要指定enctype属性值为multipart/form-data,意思是以二进制流的形式传输文件。)
    3. application/json、application/xml等格式的数据,必须使用@RequestBody来处理
    

    相关文章

      网友评论

          本文标题:Spring mvc 官方教程

          本文链接:https://www.haomeiwen.com/subject/efgwyqtx.html