SpringMVC使用@PathVariable接收参数过程解析
作者:cuisuqiang 发布时间:2021-09-03 20:52:41
标签:Spring,MVC,PathVariable,参数
PathVariable 映射 URL 绑定的占位符
带占位符的 URL 是 Spring3.0 新增的功能,该功能在SpringMVC 向 REST 目标挺进发展过程中具有里程碑的意义
通过 @PathVariable 可以将 URL 中占位符参数绑定到控制器处理方法的入参中:URL 中的 {xxx} 占位符可以通过@PathVariable(“xxx“) 绑定到操作方法的入参中。
使用MVC时,总是出现一些问题,当然都是使用造成的。
今天遇到一个问题,使用@PathVariable接收路径传递来的参数,可是访问时总是给500错误。
网上查了一下,有人说是不能带点符号,最后确定不是这个问题。
最后看到一个人说,使用@PathVariable时,参数接收要使用基本类型,比如我的代码:
@RequestMapping("/{reqKey}/req.do")
@ResponseBody
public ResponseEntity<String> ordersBack(
@PathVariable String reqKey,
@RequestParam(value="intVal") Integer intVal,
@RequestParam(value="strVal") String strVal) throws Exception{
return new ResponseEntity("ok", HttpStatus.OK);
}
这里面的intVal 我写成了int,现在改为Integer就可以了。
这里你给 required=false 是不行的,因为如果你不需要,这里Spring会给一个Null默认值,而你的类型如果是int,那肯定会出错。
你也可以使用defaultValue,这样Spring就不会去注入Null值,一样也不会出错。
综上,使用@PathVariable时注意两点:
1:参数接收类型使用基本类型
2:不用基本类型时,给defaultValue值
来源:https://www.iteye.com/blog/cuisuqiang-2064391
0
投稿
猜你喜欢
- 普通 jar 包的导出1.点击 file 中的project.structor=>选择Artifacts=>+=>选择 j
- 目录wait-notifyjoin方式ReentrantLockReentrantLock+ConditionSemaphore三个线程T1
- 安装nodejs首先电脑中需要安装nodejs,这个就不多提了,windows就是下载node.exe,一步步安装就可以了。如需安装可参考一
- 概述在移动应用开发中,消息推送可以说是一项非常重要的功能,它能够起到提醒或者唤醒用户的作用,同时也是产品运营人员更高效地实现运营目标的重要手
- Web Services 可以将应用程序转换为网络应用程序。通过使用 Web Services,您的应用程序可以向全世界发布信息,或提供某项
- 今天做了一个java对象转Map的例子,执行的时候报错了,如下:Exception in thread "main" j
- 本文实例为大家分享了java数据库唯一id生成工具类的具体代码,供大家参考,具体内容如下import java.io.File;import
- springboot跳转到指定页面controller的写法必须是templates下面的页面,不经过配置,无法直接跳转到public,st
- Java 8新增了LocalDate和LocalTime接口,为什么要搞一套全新的处理日期和时间的API?因为旧的java.util.Dat
- 本文以一个简单的实例来说明C#策略模式的实现方法,分享给大家供大家参考。具体实现方法如下:一般来说,当一个动作有多种实现方法,在实际使用时,
- spring-boot-starter-actuator提供服务健康检查和暴露内置的url接口。spring-cloud-starter-c
- 一、开发环境:1、windows 7 企业版2、IDEA 143、JDK 1.84、Maven 3.5.25、MariaDB6、SQLYog
- 效果展示在实际项目当中我们经常看到如下各种剪裁形状的效果,Flutter 为我们提供了非常方便的 Widget 很轻松就可以实现,下面我们来
- SpringBoot JPA分页查询指定列并返回指定实体用习惯Mybatis,没用过jpa 真是各种踩坑了脑壳疼,一个分页弄老半天,原来就一
- 今天有同事用swagger2开发时,有一方法返回Map<String,List<Object>>出现无法解析错误。P
- SpringBoot应用启动run方法SpringApplication.java 中执行的代码@SpringBootApplication
- 本文实例讲述了C#定时关闭窗体的方法,分享给大家供大家参考。具体方法如下:public partial class Form2 : Form
- 前言Spring Boot 中提供一个全局的配置文件:application.properties,这个配置文件的作用就是,允许我们通过这个
- 改进思考正常实现流程应该为继承ClassLoader虚拟类,并重写其loadClass方法和findClass方法,并在loadClass方
- 1:先检查 字段有没有加上注解 @TableField(fill = FieldFill.INSERT_UPDATE)@TableField