服务器之家

服务器之家 > 正文

关于@RequestParam的使用所遇到的404问题

时间:2021-11-22 13:37     来源/作者:challengelongyj

@requestparam的使用所遇到的404

问题困扰:

关于@RequestParam的使用所遇到的404问题

最近在学习springmvc,但是学习到@requestparam的使用过程中,遇到了以上的404报错问题,让我很无奈,教程的可以,为什么我的不可以!!!此时有点烦躁!!!

问题所在及解决:

经过百度之后的说法也是一堆一堆的,最后得知是jsp页面传到controller类方法的形参类型不适合,jsp页面中写的是字符串,controller类方法的形参我写成了integer类型(毕竟id定义成了integer类型的)

下面附上jsp页面代码图:会发现value="/items/edititems.action?id='${item.id }'"中的id为字符串有单引 号'',这是错误的写法!!!

关于@RequestParam的使用所遇到的404问题

重点是这里:正确的应该是value="/items/edititems.action?id=${item.id }"去掉单引号即可

以下附上controller类方法图:

下面是第一种方式:

要求形参名称id与jsp中通过request传过来的参数名称一致

关于@RequestParam的使用所遇到的404问题

第二种方式:

不要求形参名称items_id与jsp中通过request传过来的参数名称一致,但是需要加上声明 @requestparam(value="id")指定request传入参数名称和形参进行绑定

关于@RequestParam的使用所遇到的404问题

@requestparam注解在使用过程一些注意

在项目开发过程的一些教训经验记录

http接口定义如下:

?
1
2
3
4
5
6
@requestmapping(value="/fetchresdata",method = requestmethod.post,
consumes = mediatype.application_json_value)
void fetchresdata(
  @requestparam(value = "id")long id
 ,@requestparam(value = "start") string start
 ,@requestparam(value = "end") string end);

请求方式为post,content-type是json格式,@requestparam的required属性值默认是true。

客户端在调用该接口,正常传入参数值,但是请求没有进入服务端设置的断点。根据跟踪的异常提示如下:

{
  "timestamp": 1560339674464,
  "status": 400,
  "error": "bad request",
  "exception": "org.springframework.web.bind.missingservletrequestparameterexception",
  "message": "required long parameter 'id' is not present",
  "path": "/service/fetchresdata"
}

进一步分析客户端的请求体信息,如果接口使用@requestparam绑定基本数据类型情况下,请求的参数是接在url后面,消息体是没有数据的。而接口定义使用的consumes = mediatype.application_json_value。因此无法从消息体中获取有效的参数值。从而服务端认为接口参数是必填的,而实际情况是空值。

针对上述问题的解决办法

1、修改接口定义中

?
1
consumes = mediatype.application_form_urlencoded_value

等同于http中content-type为

?
1
content-type=mutipart/form-data和content-type=application/x-www-form-urlencoded

2、post方式改为get方式

以上为个人经验,希望能给大家一个参考,也希望大家多多支持服务器之家。

原文链接:https://my.oschina.net/u/3693384/blog/1546712

标签:

相关文章

热门资讯

2022年最旺的微信头像大全 微信头像2022年最新版图片
2022年最旺的微信头像大全 微信头像2022年最新版图片 2022-01-10
蜘蛛侠3英雄无归3正片免费播放 蜘蛛侠3在线观看免费高清完整
蜘蛛侠3英雄无归3正片免费播放 蜘蛛侠3在线观看免费高清完整 2021-08-24
背刺什么意思 网络词语背刺是什么梗
背刺什么意思 网络词语背刺是什么梗 2020-05-22
yue是什么意思 网络流行语yue了是什么梗
yue是什么意思 网络流行语yue了是什么梗 2020-10-11
暖暖日本高清免费中文 暖暖在线观看免费完整版韩国
暖暖日本高清免费中文 暖暖在线观看免费完整版韩国 2021-05-08
返回顶部