基于@GetMapping注解携带参数的方式

目录
  • @GetMapping注解携带参数方式
  • 使用@GetMapping注解,用一个对象来接受参数报错400
    • 解决办法(总结)

@GetMapping注解携带参数方式

今天突然发现,当我们根据id查询用户信息时,如果不想通过localhost:8080//findOne?id=1来访问,而是通过localhost:8080//findOne/1这样的url来访问,结果找了一大圈都没有发现,现在来说明一下实现。

这里使用@PathVariable注解来注解参数,value中使用{参数名}来实现。

使用@GetMapping注解,用一个对象来接受参数报错400

controller

@GetMapping("/products")
public ApiResult<List<YxStoreProductQueryVo>> goodsList(YxStoreProductQueryParam productQueryParam){
        return ApiResult.ok(storeProductService.getGoodsList(productQueryParam));
    }

接受参数的实体

@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel(value="YxStoreProductQueryParam对象", description="商品表查询参数")
public class YxStoreProductQueryParam extends QueryParam {
    private static final long serialVersionUID = 1L;
    private int page;   
    private int limit;
    private int sid;
    private int cid;
    private int news;
    private String priceOrder;
    private String salesOrder;
    private String keyword;
    private Integer brandId;    
}

请求地址:

http://127.0.0.1:8008/api/products?page=&limit=8&keyword=&sid=129&news=0&priceOrder=&salesOrder=

后台打印报错信息:

Field error in object 'yxStoreProductQueryParam' on field 'page': rejected value []; codes [typeMismatch.yxStoreProductQueryParam.page,typeMismatch.page,typeMismatch.int,typeMismatch]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [yxStoreProductQueryParam.page,page]; arguments []; default message [ page ]]; default message [Failed to convert property value of type 'java.lang.String' to required type 'int' for property 'page'; nested exception is java.lang.NumberFormatException: For input string: ""]

解决办法(总结)

如果参数是int或者Integer类型的,要么就不传参数要么就要传递一个具体的数

错误方法:

http://127.0.0.1:8008/api/products?page=&limit=8&keyword=&sid=129&news=0&priceOrder=&salesOrder=

正确方法:

http://127.0.0.1:8008/api/products?limit=8&keyword=&sid=129&news=0&priceOrder=&salesOrder=

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • 关于@GetMapping和@GetMapping(value=““)的区别

    目录 @GetMapping和@GetMapping(value=““)区别 背景 问题 说明 应用Demo 初识GetMapping("")使用方法 @GetMapping和@GetMapping(value=““)区别 背景 初期对于@GetMapping的理解比较简单,以为给什么路由就走什么路由.后来查看资料后有了更进一步的认识,特此纪要! 问题 @GetMapping和@GetMapping(value=““)的区别是什么? 说明 1.@GetMapping的标准语法是有Val

  • springboot中Getmapping获取参数的实现方式

    目录 Getmapping获取参数的方式 其他传参方式 在此之外 @GetMapping参数接收理解 当参数为基本类型时 当参数为数组时 当参数为简单对象时 当参数的对象中嵌套着对象 Getmapping获取参数的方式 Springboot中Getmapping使用PathVariable.HttpServletRequest.RequestParam获取参数 今天在学习Springboot中遇得到了一个问题,放一段代码  @GetMapping(value="/student/login/{n

  • 聊聊@RequestMapping和@GetMapping @PostMapping的区别

    @RequestMapping和@GetMapping @PostMapping的区别 最近学习看一些代码,发现对于发送请求这件事,有的地方用@RequestMapping,有的地方用@PostMapping,为了搞清楚区别,特意查了下spring 源代码,现在特此记录下. @GetMapping用于将HTTP get请求映射到特定处理程序的方法注解 具体来说,@GetMapping是一个组合注解,是@RequestMapping(method = RequestMethod.GET)的缩写.

  • 基于@GetMapping注解携带参数的方式

    目录 @GetMapping注解携带参数方式 使用@GetMapping注解,用一个对象来接受参数报错400 解决办法(总结) @GetMapping注解携带参数方式 今天突然发现,当我们根据id查询用户信息时,如果不想通过localhost:8080//findOne?id=1来访问,而是通过localhost:8080//findOne/1这样的url来访问,结果找了一大圈都没有发现,现在来说明一下实现. 这里使用@PathVariable注解来注解参数,value中使用{参数名}来实现.

  • kotlin anko页面跳转实现方式,携带参数或flag

    1:正常跳转 startActivity<RegisterActivity>() 携带参数 startActivity<ResetPwdActivity>("key" to "值") 2:A页面跳到B页面,再跳到C页面,再跳到A页面时,要求清空B,C页面退出,并且不重走A的生命周期 startActivity(intentFor<MainActivity>().singleTop().clearTop()) 3:A页面跳到B页面,

  • vue3 携带参数跳转|router传参方式

    目录 携带参数跳转|router传参 原理 demo vue路由跳转,参数的携带与获取 第一种方式 第二种方式 携带参数跳转|router传参 A页面点击按钮后携带参数跳转到B页面 原理 导入router import { useRouter } from "vue-router"; A页面传参router.push({}) B页面接收route.params.num; demo route.js { path: '/A', name:'A',component: () => i

  • 基于springboot处理date参数过程解析

    这篇文章主要介绍了基于springboot处理date参数过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 前言 最近在后台开发中遇到了时间参数的坑,就单独把这个问题提出来找时间整理了一下: 正文 测试方法 bean代码: public class DateModelNoAnnotation { private Integer id; private Date receiveDate; } controller代码: @RestContr

  • 基于SpringMVC接受JSON参数详解及常见错误总结

    最近一段时间不想使用Session了,想感受一下Token这样比较安全,稳健的方式,顺便写一个统一的接口给浏览器还有APP.所以把一个练手项目的前台全部改成Ajax了,跳转再使用SpringMVC控制转发.对于传输JSON数据这边有了更深的一些理解,分享出来,请大家指正. 在SpringMVC中我们可以选择数种接受JSON的方式,在说SpringMVC如何接受JSON之前,我们先聊聊什么是JSON.具体的定义我也不赘述了,在JavaScript中我们经常这样定义JSON 对象 var jsonO

  • Java使用@Validated注解进行参数验证的方法

    目前项目中大部分代码进行参数验证都是写代码进行验证,为了提升方便性和代码的简洁性,所以整理了下使用注解进行参数验证.使用效果如下: // 要验证的实体类 @Data public class User implements Serializable { @NotBlank(message = "id不能为空!",groups = Update.class) protected String id = ""; @NotBlank(message = "商户i

  • SpringMVC常用注解载入与处理方式详解

    目录 一 . 前言 二 . RestController 部分 三 . RequestMapping 部分 四 . RequestParam和PathVariable 五 . RequestBody 和 ResponseBody 总结 一 . 前言 这一篇来看一下SpringMVC 中各个注解载入的方式和处理的时机 二 . RestController 部分 RestController 注解主要的作用是Bean的加载 , 值得关注的注解包括 : @Controller 和 @ResponseB

  • classloader类加载器_基于java类的加载方式详解

    基础概念 Classloader 类加载器,用来加载 Java 类到 Java 虚拟机中.与普通程序不同的是.Java程序(class文件)并不是本地的可执行程序.当运行Java程序时,首先运行JVM(Java虚拟机),然后再把Java class加载到JVM里头运行,负责加载Java class的这部分就叫做Class Loader. JVM本身包含了一个ClassLoader称为Bootstrap ClassLoader,和JVM一样,BootstrapClassLoader是用本地代码实现

  • [Spring MVC]-详解SpringMVC的各种参数绑定方式

    SpringMVC的各种参数绑定方式 1. 基本数据类型(以int为例,其他类似): Controller代码: @RequestMapping("saysth.do") public void test(int count) { } 表单代码: <form action="saysth.do" method="post"> <input name="count" value="10" t

  • Spring cloud restTemplate 传递复杂参数的方式(多个对象)

    使用微服务的时候往往服务之间调用比较麻烦,spring cloud提供了Feign接口调用,RestTemplate调用的方式 这里我探讨下RestTemplate调用的方式: 服务A:接收三个对象参数  这三个参数的是通过数据库查询出来的 服务B:要调用服务A 服务B提供了查询三个参数的方法,后面要使用三个参数 对于服务A,处理的方式有两中 1. 服务B提供一个Feign接口将查询三个参数的方法公开,服务A直接引用Feign来查询参数,服务B只需要将三个查询关键字传递过去即可 服务A acti

随机推荐