zoukankan      html  css  js  c++  java
  • 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"

    到此,我的问题就已经解决。欢迎各位指正

  • 相关阅读:
    Redis之String
    代码质量管理工具——SonarQube
    XML文件(2)--使用DOM4J示例
    XML文件(1)--使用DOM示例
    Maven之构件
    使用JS,获取URL中指定参数的值
    jQuery导入Eclipse后报错解决方法
    关于MySQL存储过程中遇到的一个错误
    学习MySQL之数据类型(四)
    jmeter直连数据库【转】
  • 原文地址:https://www.cnblogs.com/yjq520/p/6755370.html
Copyright © 2011-2022 走看看