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

springmvc ajax form表单提交出现400报错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 plain  
copy

 
在CODE上查看代码片
派生到我的代码片

  1. @RequestMapping(“/hello.do”)    
  2. public String hello(HttpServletRequest req,HttpServletResponse resp,@RequestParam(value=“userName”)String user ){    
  3.     request.setAttribute(“user”, user);    
  4.     return “hello”;    
  5. }   

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

[java] 
view plain  
copy

 
在CODE上查看代码片
派生到我的代码片

  1. @RequestMapping(“/hello.do”)    
  2. public String hello(HttpServletRequest req,HttpServletResponse resp,@RequestParam(value=“userName”,required=false)String user){    
  3.    request.setAttribute(“user”, user);    
  4.    return “hello”;    
  5. }   

解决方法:

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)

private double money;

@DateTimeFormat(pattern=“yyyy-MM-dd HH:mm:ss”

 private Date date; 

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




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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/133477.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 中国Web应用程序防火墙(WAF)市场现状研究分析与发展前景预测报告「建议收藏」

    中国Web应用程序防火墙(WAF)市场现状研究分析与发展前景预测报告「建议收藏」本文研究中国市场Web应用程序防火墙(WAF)现状及未来发展趋势,侧重分析在中国市场扮演重要角色的企业,重点呈现这些企业在中国市场的Web应用程序防火墙(WAF)收入、市场份额、市场定位、发展计划、产品及服务等。历史数据为2017至2021年,预测数据为2022至2028年。

    2022年5月5日
    97
  • kindle推送服务_kindle推送服务

    kindle推送服务_kindle推送服务微信是个好东西,信息量超大,正能量的东西居多,但信息过载的滋味也很不好受,浏览了一大堆铺天盖地的信息后,关上手机后大脑又重新回到空白。所以还是喜欢用RSS聚合功能,自己去订阅优秀的博客或新闻,当有更新

    2022年8月2日
    5
  • 基于量化交易回测的金融股票案例基础知识[通俗易懂]

    基于量化交易回测的金融股票案例基础知识[通俗易懂]1量化交易定义量化交易是指以先进的数学模型替代人为的主观判断,利用计算机技术从庞大的历史数据中海选出能带来超额收益的多种“大概率”事件以制定策略。它极大的降低了市场波动给投资者情绪带来的影响,避免在市场极度狂热或者悲观的情况下做出非理性的投资决策。2量化交易分类趋势性交易:适合一些主观交易的高手,用技术性指标作为辅助工具在市场中如鱼得水的,但如果只用各种技术指标或指标组合作为核心算法…

    2022年5月8日
    56
  • pycharm的使用方法_小白远程下载教程

    pycharm的使用方法_小白远程下载教程本文记录使用pycharm过程中遇到的一些问题以及对应的解决方案:怎么下载并且使用Pycharm直接通过jetbrain官网进行下载:官网地址由于pycharm专业版是付费软件,所以需要通过一些手段才能使用,下面给出一个博主的激活成功教程文章(很详细,成功率高)当然我们还是要支持正版!财力支持的同学可以购买正版!!怎么通过pycharm软件下载一些使用插件?在Setting(设置)中找到Pl…

    2022年8月25日
    8
  • 华为ensp安装步骤_网购200多的平板电脑靠谱吗

    华为ensp安装步骤_网购200多的平板电脑靠谱吗华为ENSP安装教程有需要的请点击这个连接下载自行下载:https://pan.baidu.com/s/1ORprW88r5RBKfHFmEzimow?pwd=0118提取码:0118下载好了可以看到以下这四个程序:软件安装顺序:WinPcap、Wireshark、VirtualBox、eNSP前三个建议均采用默认安装路径安装特别提示:不准出现中文路径,如果可以四个都默认安装路径的话,那最好!注………..

    2022年10月15日
    4
  • 第三章数据链路层_数据链路层链路管理包括

    第三章数据链路层_数据链路层链路管理包括冗余链路出现的背景由于公司对网络的可靠性的要求,大部分公司都会增加额外的交换机,防止在某台交换机出现故障时造成网络的无法使用的情况,例如形成如下图的拓扑的结构。假设W和X交换中的一台出现故

    2022年8月2日
    6

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号