SpringMVC 400 Bad Request 问题

在提交表单时,发生400错误,并未进入save方法。

@RequestMapping(value="/!save",method = RequestMethod.POST)
    public String save(@ModelAttribute("user") @Valid UserEntity user,
      Locale local,
      BindingResult results){
        String message = messageSource.getMessage("name.not.empty", null, local);
        System.out.println(message);
        if(results.hasErrors())
            return "/user/add";
        return "redirect:/user/list";
    }

经google后,发现大多是因为表单数据类型与model不匹配,造成。
但是,经过一再减少model内容后,提交表单,问题依旧。
终于在iteye论坛发现:springMVC参数顺序不同导致异常

约定的BindingResult必须紧随@valid之后。

原来我这里的400是这个原因导致的。以下为正确顺序:

@RequestMapping(value="/!save",method = RequestMethod.POST)
    public String save(@ModelAttribute("user") @Valid UserEntity user,
      BindingResult results,
      Locale local){
        String message = messageSource.getMessage("name.not.empty", null, local);
        System.out.println(message);
        if(results.hasErrors())
            return "/user/add";
        return "redirect:/user/list";
    }

在解决问题之后,做一下总结:
springmvc造成400错误的原因现在知道的有以下两点:

1、提交表单数据类型与model不匹配
2、方法参数顺序不正确
还有别的场景吗?希望大家补充。

时间: 2024-10-29 00:11:02

SpringMVC 400 Bad Request 问题的相关文章

SpringMVC中出现" 400 Bad Request "错误(用@ResponseBody处理ajax传过来的json数据转成bean)的解决方法

最近angularjs post到后台 400一头雾水 没有任何错误. 最后发现好文,感谢作者 SpringMVC中出现" 400 Bad Request "错误(用@ResponseBody处理ajax传过来的json数据转成bean)的解决方法 今天开发过程中,在SpringMVC中的Action中处理前台ajax请求传过来的json数据直接转成对应的实体类时出错:400 Bad Request,后台也不报错,400指的的是请求无效(请求有语法问题或者不能满足请求),调试了好长时间

400 Bad Request The request sent by the client was syntactically incorrect ().

项目中一直出现400错误,后面搜索下,发现如下内容. SpringMVC报错信息为The request sent by the client was syntactically incorrect () 在数据绑定的时候一定要主意Controller方法中的参数名和jsp页面里的参数名字是否一致或者按照绑定的规范来写,如果不一致,可能回报如下错误: The request sent by the client was syntactically incorrect (). 从字面上理解是:客户

POST 400 Bad Request The request sent by the client was syntactically incorrect

最近在做Web开发的时候,使用$.post提交数据,但是回调函数却没有被触发,按F12看控制台输出是:POST *** 400 Bad Request 后台是SpringMVC的,设置了断点也不会被触发. 后来查看JQuery资料了解到,$.post提交数据只有成功时才触发回调函数,于是改用$.ajax提交数据,添加error回调函数,得到错误信息了,如下图: 这个问题是什么原因造成的呢? 后来经过测试发现,是表单提交的内容数据类型与实体的(也就是数据表字段)的数据类型不匹配导致的. 在提交表单

HTTP ERROR 400 Bad Request

一springmvc项目中我新增记录完全ok,编辑就是不行,后台方法进不去.老是报错HTTP ERROR 400 Bad Request. 经过查询,说是400表示请求中的语法错误. 我把新增记录的请求信息拷贝下来,把编辑的请求信息也拷贝下来,然后用notepad++比较两个请求,终于发现原因就是id不匹配.freemarker这个坑货,数字喜欢加逗号分割,9789变成了9,789,所以映射失败了.因为字符串类型肯定无法映射到Integer上去. 在此记录一下.

Failed to load resource: the server responded with a status of 400 (Bad Request) 错误请求解决

前言 这个问题是我在用ajax做文件上传时遇到的,朋友也遇到这种情况,在这里总结一下 分析 Failed to load resource: the server responded with a status of 400 (Bad Request)   是错误请求的报错 出现这种错误一般情况是: 1.前端的参数类型和后端的参数类型不匹配,比如前端string 类型,后端是date类型 <input type="date" id="bornDay" name

urllib2.HTTPError: HTTP Error 400: Bad Request

1 import urllib2 2 import re 3 import os 4 5 def process_item(self, item, spider): 6 headers = { 7 "Host": 'img31.mtime.cn', 8 "User-Agent": 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:53.0) Gecko/20100101 Firefox/53.0', 9 "

Cause of 400 Bad Request Errors

The 400 Bad Request error displays inside the Internet browser window, just as web pages do. Cause of 400 Bad Request Errors The 400 Bad Request error is an HTTP status codethat means that the request you sent to the website server (e.g. a request to

NetworkError: 400 Bad Request

"NetworkError: 400 Bad Request -http://localhost:8080/hdl/user/addOrUpdateUser.do?uuid=0&recordVersion=&createdTime=&createdByUser=&operation=add&username=admin&password=admin&appKey=admin&secret=admin&sessionKey=a

400 Bad Request(angluarJs)

今天做一个编辑的功能的时候,像后台传递一个实体,结果报400 Bad Request的错误....找了好久也没发现错误,老是报(不支持GET方式提交),检查好多遍我都是用的POST...不知道问题出在哪了,后面百度发现说是参数对应不上,可是我参数也对应上了啊,最后查出发现是我提交的date类型的数据后台不接受 该属性实体和数据库都是Date类型,因为我用的angularJs用了过滤器转成日期形式显示之后,该属性就从Date变成了String类型,所以我用@ResponseBody提交实体的时候,