失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > springmvc ajax form表单提交出现400报错

springmvc ajax form表单提交出现400报错

时间:2020-01-24 17:10:13

相关推荐

springmvc  ajax form表单提交出现400报错

此为转载:确实很不错,最下有原文的传送门

springmvc form表单提交报400错误,出现400错误的原因及解决方法:

原因:

在SpringMVC中的Action中处理前台ajax请求传过来的json数据直接转成对应的实体类时出错:400 Bad Request,后台也不报错,400指的的是请求无效(请求有语法问题或者不能满足请求)。

1:一般最常见的就是后台的实体类bean与前台穿过的类型不匹配,如你的javabean中有定义了Date类型和int类型的成员变量,导致转化器在把json数据转化成bean时不能转化。

2:log4j的配置文件里错误将部分log打为Info级别所致

3:要返回json的却忘了加@ResponseBody

4:ajax请求的连接后边忘了加参数,如url:basePath + "kscj/unbill.do?jqid="+jqids

5:传了非实体bean属性的参数过来。

6:controller指定的参数名称与前台不一致,如:使用了@RequestParam(value="userName")而前台必须指定该名称

[java]view plaincopy@RequestMapping("/hello.do") publicStringhello(HttpServletRequestreq,HttpServletResponseresp,@RequestParam(value="userName")Stringuser){ request.setAttribute("user",user); return"hello"; }

也可以指定该参数是非必须的required=false,如:

[java]view plaincopy@RequestMapping("/hello.do") publicStringhello(HttpServletRequestreq,HttpServletResponseresp,@RequestParam(value="userName",required=false)Stringuser){ request.setAttribute("user",user); return"hello"; }

解决方法:

1:把实体类的javabean里边的类型都改成string类型,在配置SQL语句时用数据库函数to_date或者to_number转化的,如果再Java中用到这个字符串类型的日期的话,有必要的话,就用For format=new SimpleDateFormat("yyyy-MM-dd"),format.parse()来转换。

2:在对应的实体类的对应的非字符串类型的变量的setter方法中传入string类型的,然后在里边用SimpleDateFormat或者Integer进行转化。

如:public void setBjsj(Date bjsj) {

this.bjsj = bjsj;

}

变成

public void setBjsj(String bjsj) throws ParseException {

SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

this.bjsj =sdf.parse(bjsj) ;

}

备注:

3:在实体类的日期属性上加@DateTimeFormat(pattern="yyyy-MM-dd")注解。

spring提供了FormattingConversionService和DefaultFormattingConversionService来完成对象的解析和格式化。

首先引入格式化jar:把Joda-Time包添加到之前的项目中,这里用的是joda-time-2.3.jar,然后在实体类中这样写:

@NumberFormat(style=Style.CURRENCY)

privatedoublemoney;

@DateTimeFormat(pattern="yyyy-MM-ddHH:mm:ss")

privateDatedate;

注意:这里的money和date不再是String类型,而是它们自己本来的类型。

转载出处:/u014079773/article/details/51865178 (总结的很好,确实能解决问题!!!)

如果觉得《springmvc ajax form表单提交出现400报错》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。