@PathVariable和@RequestParam传参为空问题及解决
作者:眉梢i 发布时间:2023-01-06 02:27:00
标签:@PathVariable,@RequestParam,传参
@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
http://localhost:8080/xie
http://localhost:8080/xie1
http://localhost:8080/xie1?name=qiao
小结一下
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,如图:
所以我们可以这样写,只写一个例子
@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


猜你喜欢
- 主内存和工作内存Java 内存模型规定了所有的变量都存储在主内存中, 每条线程有自己的工作内存线程的工作内存中保存了被该线程使用的变量的主内
- 本文实例讲述了C#提取网页中超链接link和text部分的方法。分享给大家供大家参考,具体如下:string s = "..&qu
- 用来练手还是不错的,分享大家看一下,还是一些新颖点的!哈哈 就是自定义DataGridView,方便每个功能部分调用!简单!再次重
- 本文实例为大家分享了Java多线程实现第三方数据同步的具体代码,供大家参考,具体内容如下一、场景最近的一项开发任务是同步第三方数据,而第三方
- RunnableRunnable接口非常简单,就定义了一个方法run(), 实现Runnable接口的run方法就可以实现多线程// 函数式
- (一)单线程递归方式package com.taobao.test;import java.io.File;public class Tot
- 概要设计模式是一门艺术,如果真正了解这门艺术,你会发现,世界都将变得更加优美。定义定义一个用于创建对象的接口,让其子类去决定实例化那个类使用
- 问题:在web里面用iframe连接一个html文件 - html文件里面是超链接 -&nb
- java反射机制是什么反射机制是在运行状态中,可以知道任何一个类的属性和方法,并且调用类的属性和方法;反射机制能够做什么1、判断运行对象的所
- Java画图 给图片底部添加文字标题需求给图片底部添加文字编号import java.awt.Color;import java.awt.F
- 由于最近通过SDK-Manager更新了build-tools,当要用到dx.jar这个包时,自动调用最新build-tools中dx.ja
- 发布:一个对象是使它能够被当前范围之外的代码所引用:常见形式:将对象的的引用存储到公共静态域;非私有方法中返回引用;发布内部类实例,包含引用
- 本文实例讲述了Java二维数组。分享给大家供大家参考,具体如下:一 点睛1 每行的元素个数不同的二维数组Java定义二维数组更加灵活,允许二
- 1.元组(Tuple)元组(Tuple)在4.0 的时候就有了,但元组也有些缺点,如: 1)Tuple 会影响代码的
- Android 自定义 Toast 显示时间实现代码:package com.wm.realname.util;import android
- 摘要:vs2019新鲜出炉,配置opencv又有哪些不一样呢,这个教程将会一步一步的教你如何配置opencv和跑动opencv一个简单的项目
- 配置事务: 使用的tx前缀的标签, 导入tx的命名空间配置事务管理器 , 把事务管理器交给Spring管理:<bean id=&quo
- using 指令有两个用途: 允许在命名空间中使用类型,以便您不必限定在该命名空间中使用的类型。 为命名空间创建别名。 using
- 一、Jackson简介说明:本篇讲的是Jackson的详细用法,Jackson工具类在文章最后,直接复制粘贴即可使用。 Jackson是公司
- 本文实例为大家分享了Android图表库HelloChart绘制多折线图的具体代码,供大家参考,具体内容如下一、效果图二、实现步骤1.添加依