版权声明:本文为博主原创文章,未经博主允许不得转载。谢谢合作~ https://blog.csdn.net/qq_41042595/article/details/85781260
JDK1.7+Tomcat7.0+Eclipse+SSM
当我点击""查询""按钮后,页面报错:400,但是Eclipse的控制台没有报异常!!!!
参考
(1)HTTP 400 错误 - 请求无效 (Bad request)
(2)400(HTTP状态码)_百度百科
扩展:404页面
原因,主要跟Spring MVC、整型类型有关(懂还是不懂,朋友,都可以留言沟通哦~)
1、我的“查询”相关的代码
我的EmpVo的age为int类型:
我的EmpService,实际上就是EmpDAO接口类的实现类,所以直接看EmpDAO接口类与EmpDAO配置(主要看listEmp_taskByIF方法,因为我的400是在“”查询“”时出现的异常!!!):
我的list方法:
扫描二维码关注公众号,回复:
4829386 查看本文章
我的EmpList页面:
EmpList页面使用了empList、edList:
浏览器显示:
2.为什么会报400
若我只查询“部门”或“员工名”等等 或者 查询“部门和员工名”或其他 或者 不查询,反正就是不查询“年龄”,当点击“查询”按钮时,就会报400,从此可知,错误就是与“年龄age”有关,
每次“登录Login“页面转向”员工列表EmpList”页面过程中,即,从login.jsp到EmpController.jsp的list,再到EmpList.jsp过程中,EmpController的list()的参数emp里的属性都有默认值:age、empId有(int类型)默认值“0”,而String对应的变量默认为“null”,但是 到 转入EmpList页面后,在"查询"模块中,年龄的输入框里没有任何值,即,不是:【当“新增”时,页面里年龄输入框确实会出现这样的!!!因为age是int类型,】,而是,,你也许说,本来就是,不是吗?哈哈哈~对的,本来就这样,因为没有“value=${emp.age}”!!!
好的,说完这个,我接着做讲的是:“年龄”输入框没有输入什么值,当你点击“查询”时,页面或Spring MVC 也不会处理,不会将“没有值的age赋‘0’值”,所以传到后台,age没有值,连null或空格都不是,导致报400
3、解决
①将age的int类型改为Integer类型。
【将EmpVo里的age改为Integer类型,EmpDAO配置中也改条件,因为Integer默认值为null,int默认值才为0】
(1) Integer与int的种种比较你知道多少?
(2)java面试题之int和Integer的区别
【两篇文章的 并 集 就是我想分享的】