关于@RequestParam的使用所遇到的404问题
@RequestParam的使用所遇到的404
问题困扰:
最近在学习springmvc,但是学习到@RequestParam的使用过程中,遇到了以上的404报错问题,让我很无奈,教程的可以,为什么我的不可以!!!此时有点烦躁!!!
问题所在及解决:
经过百度之后的说法也是一堆一堆的,最后得知是jsp页面传到controller类方法的形参类型不适合,jsp页面中写的是字符串,controller类方法的形参我写成了Integer类型(毕竟id定义成了Integer类型的)
下面附上jsp页面代码图:会发现value="/items/editItems.action?id='${item.id }'"中的id为字符串有单引 号'',这是错误的写法!!!
重点是这里:正确的应该是value="/items/editItems.action?id=${item.id }"去掉单引号即可
以下附上controller类方法图:
下面是第一种方式:
要求形参名称id与jsp中通过request传过来的参数名称一致
第二种方式:
不要求形参名称items_id与jsp中通过request传过来的参数名称一致,但是需要加上声明 @RequestParam(value="id")指定request传入参数名称和形参进行绑定
@RequestParam注解在使用过程一些注意
在项目开发过程的一些教训经验记录
http接口定义如下:
@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、修改接口定义中
consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE
等同于http中content-type为
Content-Type=mutipart/form-data和Content-Type=application/x-www-form-urlencoded
2、Post方式改为Get方式
以上为个人经验,希望能给大家一个参考,也希望大家多多支持猪先飞。
相关文章
SQLServer 错误: 15404,无法获取有关 Windows NT 组/用户 WIN-8IVSNAQS8T7\Administrator 的信息
SQLServer 错误: 15404,无法获取有关 Windows NT 组/用户 'WIN-8IVSNAQS8T7\Administrator' 的信息,错误代码 0x534。 [SQLSTATE 42000] (ConnIsLoginSysAdmin)...2021-07-15- 这篇文章主要介绍了Tomcat正常访问localhost报404问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-03-31
- 这篇文章主要介绍了解决IDEA误删out目录下的文件导致404无法访问的情况,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-02-09
- 这篇文章主要介绍了IIS自定义404错误页避免暴露.NET网站路径信息,在输入非.aspx页面时,显示默认404页面,暴露站点路径信息,本文就给出了一个解决方法,需要的朋友可以参考下...2016-01-27
- 这篇文章主要介绍了Nginx正确的404配置方法,本文根据实际案例总结而来,可以说是一个等号引发的血案!需要的朋友可以参考下...2016-01-27
- 这篇文章主要介绍了SpringBoot接口调用之后报404问题的解决方案,具有很好的参考价值,希望对大家有所帮助。...2021-06-21
Nginx中404页面的配置及AJAX请求返回404页面的方法
404是请求页面不存在的错误代码,在Nginx中有时处理jQuery中的ajax方法虽然能返回404页面但错误代码却返回200,针对此问题我们具体来看一下Nginx中404页面的配置及AJAX请求返回404页面的方法...2016-08-27- 下面是在iis下 404页面的设置方法,我们特为大家准备了图片。...2016-01-27
- 这篇文章主要介绍了解决使用@RequestParam注解和泛型遇到的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-10-26
浅谈@RequestParam(required = true)的误区
这篇文章主要介绍了@RequestParam(required = true)的误区,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-11-05PHP(FastCGI)在Nginx的alias下出现404错误的解决方法
这篇文章主要介绍了PHP(FastCGI)在Nginx的alias下出现404错误的解决方法,涉及nginx平台的相关配置技巧,需要的朋友可以参考下...2016-08-27基于@RequestParam与@RequestBody使用对比
这篇文章主要介绍了@RequestParam与@RequestBody的使用对比,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-10-22- ASP.NET MVC自定义错误页面真的简单吗?这篇文章主要介绍了ASP.NET MVC自定义错误页面,感兴趣的小伙伴们可以参考一下...2021-09-22
- 有的SEO菜鸟需要在IIS里配置404页面,但不知道该如何操作,这里发一下操作教程,希望对不清楚的seoer有所帮助...2016-01-27
使用HttpHanlder处理404:File not found的问题
本篇文章小编为大家介绍。使用HttpHanlder处理404:File not found的问题。需要的朋友参考下...2020-06-25- 这篇文章主要介绍了@RequestParam 参数偶尔丢失的解决,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-10-25
关于IDEA使用jsp可以访问页面转换为html弹出页面为404的问题
这篇文章主要介绍了关于IDEA使用jsp可以访问页面转换为html弹出页面为404的问题及解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2020-12-09- 这篇文章主要介绍了Nginx中定义404页面并且返回404状态码的正确方法,本文在一次AJAX调用时发现了这个问题,服务器返回了一个404页页但没有返回404状态码,需要的朋友可以参考下...2016-01-27
- 这篇文章主要介绍了解决vue项目打包上服务器显示404错误,本地没出错的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-11-03
- 这篇文章主要介绍了php使用curl判断网页404(不存在)的方法,通过curl获取http头信息进行404错误判断,非常简便易懂,需要的朋友可以参考下...2016-06-24