ssm项目 400错误(get可提交,post报400错误)

ssm项目 400错误

ssm整合的时候,提交form表单,使用get方式提交可以正常提交,使用post方式提交就提示400错误,原以为是参数问题,网上找了很多人的解决方法以及报错原因,还是没有解决,后来反复的审查代码尝试后发现web.xml中配置中文过滤器有问题,少配置了encoding属性。主要是中文乱码问题导致参数长度有变,不能正确封装,所以出现了400错误。

起因:我的sex属性在数据库中选择char类型长度是1,我在实体类中用Character做属性类型来封装sex属性。
问题:当使用post方式提交时,发现400错误,经过尝试发现改成get方式提交,可以正常封装。
尝试解决:经过反复审查代码,把数据库中sex字段改成了varchar(32),
实体类中的属性也使用String来接收sex。form表单再次使用post提交,发现封装成功,提交成功!如下:
ssm项目 400错误(get可提交,post报400错误)_第1张图片
尝试解决:此时可以清楚的发现中文乱码问题,于是我又去检查了代码配置,我发现中文过滤器漏写了encoding属性,加上encoding。这时候我又在想,能不能把sex重新改回char(1),实体类用Character接收sex。
ssm项目 400错误(get可提交,post报400错误)_第2张图片
解决:改回之后,form再次使用post请求提交,发现不会报400错误了,数据正常封装,正常提交。
ssm项目 400错误(get可提交,post报400错误)_第3张图片
经过这些,我发现是因为中文乱码问题导致参数长度发生变化,因而封装失败!

你可能感兴趣的:(SSM,乱码问题)