The request sent by the client was syntactically incorrect.报错

错误原因:

public void test(HttpServletResponse response,
                  @Valid ForgetPwdVO forgetPwdVO,Integer type, BindingResult validResult){
}

ForgetPwdVO 的bean中有如下参数:

@NotNull(message = "273")
@Pattern(regexp = "^1\\d{10}$", message = "107")
private String phone;

在controller接口参数有forgetPwdVO对象和type普通参数,当phone参数传错时就会报错:

HTTP Status 400 -

The request sent by the client was syntactically incorrect.意思:由客户端发送的请求是语法上是不正确的。但还是不明白哪里出了问题,

经过了解在spring mvc数据绑定的时候一定要主意Controller方法中的参数名和传的参数名字是否一致或者按照绑定的规范来写,如果不一致,可能会报如下错误:The request sent by the client was syntactically incorrect.实际就是spring mvc无法实现数据绑定。

代码经过修改如下: 

第一种解决办法:将普通参数写到bean类中。

public void test(HttpServletResponse response,
                  @Valid ForgetPwdVO forgetPwdVO, BindingResult validResult){
}

ForgetPwdVO 的bean中有如下参数:

@NotNull(message = "273")
@Pattern(regexp = "^1\\d{10}$", message = "107")
private String phone;
private Integer type;

第二种解决办法:普通参数放到普通参数前面。

public void test(HttpServletResponse response,
                  
Integer type,@Valid ForgetPwdVO forgetPwdVO, BindingResult validResult){}

这样当phone参数传送错误时服务器不再报400错误。

总结:出现400错误多半是spring MVC传的参数类型错误导致。

详细排查错误:https://blog.csdn.net/lw1242189467/article/details/80048407。

绑定参数规范:https://www.cnblogs.com/ysocean/p/7425861.html


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值