后台控制台提示:Request method 'POST' not supported
400错误一般指的是请求无效,请求有语法问题或者不能满足请求。
网上分析原因可能有以下: 1. 一般最常见的就是后台的实体类bean与前台穿过的类型不匹配 2. log4j的配置文件里错误将部分log打为Info级别所致 3. 要返回json的却忘了加@ResponseBody 4. 传了非实体bean属性的参数过来。 5. controller指定的参数名称与前台不一致,如:使用了@RequestParam(value="userName")而前台必须指定该名称
查看代码,发现我的POJO对象中有日期属性,问题果然是这里。
原先birth属性的set方法,是自动生成的,如下:
public void setBirth(Date birth) { this.birth =birth; }
页面传来的参数都是String类型,我传入的参数格式是2018-03-12,在日期转换时发生了错误,页面请求失败。
如果未做任何处理时,springboot默认的日期格式是:2018/03/02
如果输入其他格式或者不输入就会请求失败,如:2018-02-01,2018.01.01
1.直接修改set方法。设置日期格式。
public void setBirth(String birth) throws ParseException { //自定义日期格式 SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd"); //如果没有传入日期,直接返回空值。 if (StringUtils.isEmpty(birth)) { this.birth=null; return; }else{ //将传入的日期,按照自定义格式转化后赋值。 this.birth =sdf.parse(birth) ; } }
2.在application.properties中配置spring.mvc.date-format属性。
这样就可以顺利将参数注入POJO对象中了。