您的位置:首页 > 编程语言 > Java开发

SpringMVC form 表单提交报400错误

2017-04-24 09:47 543 查看
错误代码:

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"

到此,我的问题就已经解决。欢迎各位指正
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: