@PathVariable和@RequestParam传参为空问题及解决

作者:眉梢i 时间:2023-01-06 02:27:00 

@PathVariable和@RequestParam传参为空


@RestController
public class UserController {
   @GetMapping(value = {"/xie/{name}","/xie"})
   public String xie(@PathVariable(value = "name",required=false) String name){
       return "my name is:"+name;
   }

@GetMapping("/xie1")
   public String xie1(@RequestParam(value = "name",required = false) String name){
       return "my name is:"+name;
   }

}

访问地址:

http://localhost:8080/xie/qiao

@PathVariable和@RequestParam传参为空问题及解决

http://localhost:8080/xie

@PathVariable和@RequestParam传参为空问题及解决

http://localhost:8080/xie1

@PathVariable和@RequestParam传参为空问题及解决

http://localhost:8080/xie1?name=qiao

@PathVariable和@RequestParam传参为空问题及解决

小结一下

required = false属性设置前端可以不传数据,当在使用@RequestParam时直接写上,不需要改变地址映射,当使用@PathVariable时,需要在地址映射上面写入多个地址映射。而且必须写required = false,不然报500

使用@pathvariable与@requestparam碰到的问题

1.@pathvariable

可以将 URL 中占位符参数绑定到控制器处理方法的入参中:URL 中的 {x} 占位符可以通过@PathVariable("x") 绑定到操作方法的入参中。


@GetMapping("/test/{id}")
public String test(@PathVariable("id") String id){
   System.out.println("test:"+id);
   return SUCCESS;
}

可以看出使用@pathvariable注解它直接从url中取参,但是如果参数是中文就会出现乱码情况,这时应该使用@requestparam注解

2.@requestparam

它是直接从请求中取参,它是直接拼接在url后面(demo?name=张三)


@GetMapping("/demo")
public String test(@requestparam(value="name") String name){
    System.out.println("test:"+name);
    return SUCCESS;
}

注:如果参数不必须传入的话,我们从源码中可以看出两者required默认为true,如图:

@PathVariable和@RequestParam传参为空问题及解决

@PathVariable和@RequestParam传参为空问题及解决

所以我们可以这样写,只写一个例子


@GetMapping("/demo")
public String test(@requestparam(value="name", required = false) String name){
    System.out.println("test:"+name);
    return SUCCESS;
}

来源:https://blog.csdn.net/qq_45225798/article/details/120473289

标签:@PathVariable,@RequestParam,传参
0
投稿

猜你喜欢

  • Spring Boot + Thymeleaf + Activiti 快速开发平台项目 附源码

    2023-11-23 08:23:43
  • Java使用Socket通信传输文件的方法示例

    2023-04-16 21:52:31
  • AndroidStudio修改Code Style来格式化自定义标签的xml文件方式

    2023-08-07 00:43:21
  • 详解Java分布式系统中一致性哈希算法

    2022-10-11 18:01:05
  • MybatisPlus使用Wrapper实现条件查询功能

    2021-11-29 10:21:08
  • Java中session存储Users对象实现记住密码

    2021-06-27 10:46:59
  • spring循环注入异常问题的解决方案

    2021-06-29 02:21:18
  • C语言进制转换代码分享

    2021-10-16 15:39:23
  • SpringCloud HystrixDashboard服务监控详解

    2021-12-16 03:35:47
  • Java中ShardingSphere分库分表实战

    2023-11-24 09:20:37
  • 美化java代码,从合理注释开始

    2022-01-18 16:32:47
  • 详解Android四种存储方式

    2022-06-26 21:51:35
  • SpringCloud之@FeignClient()注解的使用方式

    2022-05-16 04:22:40
  • 关于@Entity和@Table注解的用法详解

    2022-05-15 15:29:04
  • Java 栈与队列实战真题训练

    2021-06-11 01:46:08
  • Android开发之全屏与非全屏的切换设置方法小结

    2021-07-05 04:10:13
  • 通过Session案例分析一次性验证码登录

    2023-04-27 06:25:51
  • 详解Java实现缓存(LRU,FIFO)

    2022-04-24 13:35:26
  • WPF自定义实现IP地址输入控件

    2022-02-24 05:35:36
  • 利用Android两行代码真正杀死你的App

    2023-04-07 17:15:46
  • asp之家 软件编程 m.aspxhome.com