zoukankan      html  css  js  c++  java
  • Controller层方法传参和返回字符串

    1:controller层方法传参


    pic-1590654577197.png

    在上图的方法中,需要调用这个方法的话,那么a参数是必传的,b和c无所谓传不传,甚至是你传一个方法中没有的参数d也是可以正常调用该方法的。总之是有类似上面的注解@RequestParam的参数必传,其余的看逻辑需求(一般逻辑写了参数的,那么都会传参,不会出现很奇怪的传参方式)。

    有关@RequestParam的总结:
        @RequestParam(value="a",required = true) 这个注解的后面多加了个参数required,required直译过来是需要,这里我们翻译成,是否需要? 然后这个参数后面等于true,那就是说这个参数a是必传的。
        其实@RequestParam(value="a",required = true)和@RequestParam(value="a")是一样的意思,都是a参数必传的意思,不传报错。
        当然,有了required = true,那么自然就有 required = false。很显然,required = false是参数非必传。@RequestParam(value="a",required = false) 和在方法形参前不写该注解是一样的意思。

    补充:2019/12/20
    @RequestParam(value="a",required = false) 和在方法形参前不写该注解是一样的意思。都可以不传参,但是前提是该参数是不为基本数据类型,否则会报错。如下:


    pic-1589441462888.png

    不能将参数a转为null处理,所以我这里猜想,要是没有传参的话,那么会给一个默认值为null,但是基本数据类型不能强转为null,所以报错。还需要注意的是,8个基本数字类型,**除了boolean之外,都会报错,**但是boolean这个基本数字类型就不会。(本人亲测)


    pic-1590654577198.png

    如上图所示参数,直接访问/gm,在页面可以正常返回“干嘛”字样。

    2:Controller层方法返回的字符串
    之前在项目里,看见controller层的返回类型是个字符串,但是实际跳转的时候是跳转到具体某个页面的。都是似懂非懂,现在来总结下:

    1:就是直接返回字符串的(在浏览器页面显示具体字符串)
        后台方法的写法是:

    上图中的@ResponseBody注解是返回JSON格式,这里要把字符串在浏览器页面显示出来,这个注解必须加上。
    浏览器页面访问并传个a参数过去效果:

    2:返回字符串跳转到页面的。
    首先需要在springboot项目的application.properties或者是application.yml文件配置视图解析器,如图:

    前缀是/static,后缀是.html。因为springboot的配置文件根路径是从resources目录开始的,新建一个文件名为a.html的静态页面。如下图:

    后台方法的写法如下:

    需要注意的是需要返回页面,那么就必须不能在这个方法上面加上@ResponseBody或者是不能在这个Controlle层的类上写@RestController注解。
    其实,这里返回的字符串“a”,实际上是返回了“/static/a.html”;
    在浏览器里访问/testOne方法的结果如下:

    最后:Controller层上的类注解@Controller + @ResponseBody = @RestController

    补充: 2019/11/04     

    今天和往常一样配置视图解析器,想要跳转某个页面,可是奇怪的事发生了,总是跳转不了,报错如下:

      

      最后解决办法是在application.properties配置文件里添加一个静态资源路径,如下图:

      

    这里的静态资源是放在resources的static下面。

  • 相关阅读:
    问题:sqlserver 跨服务器连接;结果:Sql Server 跨服务器连接
    SpringBoot之Servlet、Filter、Listener配置
    spring boot 使用@ConfigurationProperties
    Mysql字段属性应该尽量设置为not null
    微服务—ELK分布式日志框架
    微服务—分布式服务追踪sleuth和zipkin
    微服务—熔断器Hystrix
    @RequestBody和@ResponseBody的使用情形以及RestTemplate的http报文转换
    application/x-www-form-urlencoded和multipart/form-data
    基于JWT的token身份认证方案
  • 原文地址:https://www.cnblogs.com/xm970829/p/12981810.html
Copyright © 2011-2022 走看看