关于“Required 类型 parameter '参数' is not present”问题的小结
在做一个请假信息管理页面时,在实现通过请假申请时遇到一个问题,问题的本质很简单,就是通过请求相应的接口去修改对应实体类的参数从而修改数据库中的具体数据,其实就是将数据表中请假申请记录的标识字段的值修改(例如在我的请假信息表中,我使用status
字段来标识该条请假信息的状态:0未审批、1审批通过、2审批未通过)。
在前端我传递的参数是数据表中的主键id
,在后端我是用注解@RequestParam
来标识传递的参数,但是运行时报错显示:
,去网上查了很多相关的问题,发现这个报错的原因有很多种,但都不是我这里的错误原因。于是整理一下可能的解决方法:
- 可能请求param没有对应属性值导致,可设置 require = false 或者 尝试加 defaultValue =“null” 解决
- 由于请求方式不对,试试将POST改为GET或者其方式
- 页面传递的参数和后台接受参数名自不匹配,需仔细对比前后传递参数是否一致,名称如果不一样需要在注解后补充,例如
@RequestParam("参数名")
,然后就是注意拼写问题 @RequestParam
是默认必需有默认值,实际情况是没有默认值,可以试试@PathVariable
- 在前端传递时,应该是写成
params: this.$http.adornParams()
而不是data: this.$http.adornData()
,否则也会找不到参数(这是我这里的错误原因)