美文网首页
日常撸码(不定期更新)

日常撸码(不定期更新)

作者: kk爱自由 | 来源:发表于2019-04-01 23:49 被阅读0次

    1.myBatis使用错误:

    • 1.1 mapper映射文件中,当查询结果为多条结果时,在mapper接口中返回值可以封装成List集合,但是mapper映射文件中的resultType中只能是List<E>中的元素类型,如下例子:


      image.png

      mapper.xml中


      image.png

    切记:不能定义成java.util.List,会报如下错误:
    Cause: java.lang.UnsupportedOperationException

    2.springMVC中@RequestBody和@RequestParam

    @RequestParam用来处理Content-Type: 为 application/x-www-form-urlencoded 编码的内容。(Http协议中,如果不指定Content-Type,则默认传递的参数就是application/x-www-form-urlencoded类型

    @RequestParam 注解 加与不加的区别

    @RequestMapping("/list")
        public String test(@RequestParam  Long userId) {
    
            }
    
    @RequestMapping("/list")
        public String test( Long userId) {
            
        }
    

    第一种必须带有参数,也就是说你直接输入localhost:8080/list 会报错 不会执行方法 只能输入localhost:8080/list?userId=? 才能执行相应的方法
    第二种 可带参数也可不带参数 就是说你输入 localhost:8080/list 以及 localhost:8080/list?userId=? 方法都能执行

    当然你也可以设置 @RequestParam 里面的required为false(默认为true 代表必须带参数) 这样就跟第二种是一样的了

    完整参数

    @RequestMapping("/list")  
        public String test(@RequestParam(value="id" ,defaultValue="0", required=true)  Long userId) {  
        //...   
        } 
    

    这样会用id 代替userId 也就是说你地址里面传入的参数名称为id localhost:8080/list?id=?

    @RequestBody处理HttpEntity传递过来的数据,一般用来处理非Content-Type: application/x-www-form-urlencoded编码格式的数据。

    GET请求中,因为没有HttpEntity,所以@RequestBody并不适用。
    POST请求中,通过HttpEntity传递的参数,必须要在请求头中声明数据的类型Content-Type,SpringMVC通过使用HandlerAdapter 配置的HttpMessageConverters来解析HttpEntity中的数据,然后绑定到相应的bean上。

    在GET请求中,不能使用@RequestBody。
    在POST请求,可以使用@RequestBody和@RequestParam,但是如果使用@RequestBody,对于参数转化的配置必须统一。

    相关文章

      网友评论

          本文标题:日常撸码(不定期更新)

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