springmvc form表单提交报400错误
来源:互联网 发布:安卓主题软件 知乎 编辑:程序博客网 时间:2024/05/05 01:37
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")而前台必须指定该名称
@RequestMapping("/hello.do") public String hello(HttpServletRequest req,HttpServletResponse resp,@RequestParam(value="userName")String user ){ request.setAttribute("user", user); return "hello"; }
也可以指定该参数是非必须的required=false,如:
@RequestMapping("/hello.do") public String hello(HttpServletRequest req,HttpServletResponse resp,@RequestParam(value="userName",required=false)String user){ 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;
}
变成
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)
private double money;
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date date;
注意:这里的money和date不再是String类型,而是它们自己本来的类型。
总结:方法2和方法3我实行过,对于字段非常少的情况下是可行的。但是对于字段非常多的情况下,这样错是一件非常可怕的事情。实际开发中数据库设计是由公司数据库人员自己定义的,假如日期类型和数值类型,公司就明确规定使用Date和Integer类型,那么转换是必须要做的。
- springmvc form表单提交报400错误
- springmvc ajax form表单提交出现400报错
- form表单提交浏览器报404错误
- form表单提交400问题springmvc
- springMVC form表单提交---包含时间类型的数据报错400
- springmvc中前台页面form表单提交方法为post,但是报HTTP Status 405
- springMVC提交form表单页面不跳转
- SpringMVC form表单提交list对象集合
- springMVC form 表单的提交方式
- 关于form表单提交时报400错误的总结
- spring mvc 前台form提交数据报400错误
- Yii Form表单提交时出现错误
- 每日一得--springmvc提交form表单重复提交
- springmvc 表单提交时间字段_springMVC form提交404
- 【解决】springmvc 前台表单提交数据返回400错误
- SpringMVC表单提交错误400排查思路及解决方案
- Ajax提交表单报400 bad request错误
- 表单提交 400错误
- Theme主题设置
- 贫血和富血
- PE文件数据结构汇总
- 动态SQL和绑定变量(转)
- Javascript工厂模式:函数createPerson(...
- springmvc form表单提交报400错误
- jsp 判断list是否包含string
- [git]windows下git log出现乱码
- 基本结构的运行时间单元
- JavaScript 数组去重
- zookeeper 集群安装
- android环境搭建
- 玩无限消乐的设计示例(基础篇)随机布局
- 非阻塞队列实现生产消费者模式