首页 > 代码库 > SpringMVC form 表单提交报400错误
SpringMVC form 表单提交报400错误
错误代码:
HTTP Status 400 -
type Status report
message
description The request sent by the client was syntactically incorrect.
Apache Tomcat/7.0.47
原因:
400 请求出错
由于语法格式有误,服务器无法理解此请求。不作修改,客户程序就无法重复此请求。
在 SpringMVC 中的 Action 中处理前台 ajax 请求传过来的 json 数据直接转成对应的实体类时出错:
400 Bad Request,后台也不报错,400指的的是请求无效(请求有语法问题或者不能满足请求)。
解决办法:
检查实体类的 javabean 里边的类型是否和 springmvc form 的 form 表单名是否一致。
我的错误原因是两个关联的实体类导致在 form 表单中 name 名称不一致:
Employee.java
private Integer id; private String lastName; private String email; private int gender; private Department department; //无参构造方法以省略 //有参构造方法以省略 //setter 和 getter 方法以省略
Department.java
private Integer id;private String departmentName; //无参构造方法以省略 //有参构造方法以省略 //setter 和 getter 方法以省略
form 表单:
<!-- 可以通过 modelAttribute 属性指定绑定的模型属性, 若没有指定该属性,则默认从 request 域对象中读取 command 的表单 bean, 如果该属性值也不存在,则会发生错误 --> <form:form action="emp-save" method="post" modelAttribute="employee"> <!-- path 属性对应 HTML 表单标签的 name 属性 --> LastName:<form:input path="lastName"/> <br> Email:<form:input path="email"/> <br> Gender:<form:radiobuttons path="gender" items="${genders}"/> <br> Department:<form:select path="department" items="${dapartments}" itemLabel="departmentName" itemValue="id"></form:select><br> <input type="submit" value="Submit"> </form:form>
把 path="department" 改为 path="department.id"
到此,我的问题就已经解决。欢迎各位指正
SpringMVC form 表单提交报400错误
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。