SpringMVC表单提交参数400错误解决方案

 更新时间:2020年10月21日 11:09:01   作者:cuisuqiang  
这篇文章主要介绍了SpringMVC表单提交参数400错误解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

SpringMVC下,提交表单报400错:

description The request sent by the client was syntactically incorrect.

根据网上的总结,可能是因为如下几个问题引起的

1.参数指定问题

如果Controller中定义了参数,而表单内却没有定义该字段

@SuppressWarnings("deprecation") 
@RequestMapping("/hello.do") 
public String hello(HttpServletRequest request,HttpServletResponse response, 
    @RequestParam(value="userName") String user 
){ 
  request.setAttribute("user", user); 
  return "hello"; 
} 

这里,表单内必须提供一个userName的属性!

不想指定的话,你也可以定义这个属性的默认值defaultValue="":

@SuppressWarnings("deprecation") 
@RequestMapping("/hello.do") 
public String hello(HttpServletRequest request,HttpServletResponse response, 
    @RequestParam(value="userName",defaultValue="佚名") String user 
){ 
  request.setAttribute("user", user); 
  return "hello"; 
} 

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

@SuppressWarnings("deprecation") 
@RequestMapping("/hello.do") 
public String hello(HttpServletRequest request,HttpServletResponse response, 
    @RequestParam(value="userName",required=false) String user 
){ 
  request.setAttribute("user", user); 
  return "hello"; 
} 

2.上传问题

上传文件大小超出了Spring上传的限制

<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">  
  <!-- 设置上传文件的最大尺寸1024字节=1K,这里是10K -->  
  <property name="maxUploadSize">  
    <value>10240</value>  
  </property> 
  <property name="defaultEncoding">  
      <value>UTF-8</value>  
  </property>  
</bean> 

我们工程里面是这个问题引起的,但是我实际示例中发现超过大小是直接报错的。

3.时间转换问题

也有网友说是因为时间转换引起的,而我实际操作中发现报错是:

The server encountered an internal error that prevented it from fulfilling this request

这里也顺便提一下,假如你的Controller要一个时间对象,代码如下:

@SuppressWarnings("deprecation") 
@RequestMapping("/hello.do") 
public String hello(HttpServletRequest request,HttpServletResponse response, 
    @RequestParam(value="userName",defaultValue="佚名") String user, 
    Date dateTest 
){ 
  request.setAttribute("user", user); 
  System.out.println(dateTest.toLocaleString()); 
  return "hello"; 
} 

而网页上实际给的是

<input type="text" name="dateTest" value="2015-06-07">

这里需要在Controller增加一个转换器

@InitBinder 
public void initBinder(WebDataBinder binder) { 
  SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); 
  dateFormat.setLenient(false); 
  binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, false)); 
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • java实现马踏棋盘的算法

    java实现马踏棋盘的算法

    这篇文章主要为大家详细介绍了java实现马踏棋盘的算法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-02-02
  • java使用spring实现读写分离的示例代码

    java使用spring实现读写分离的示例代码

    本篇文章主要介绍了java使用spring实现读写分离的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-12-12
  • elasticsearch集群发现zendiscovery的Ping机制分析

    elasticsearch集群发现zendiscovery的Ping机制分析

    这篇文章主要为大家介绍了elasticsearch集群发现zendiscovery的Ping机制分析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-04-04
  • Java从同步容器到并发容器的操作过程

    Java从同步容器到并发容器的操作过程

    这篇文章主要介绍了Java从同步容器到并发容器的操作过程,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-10-10
  • SpringBoot中的共享Session域详解

    SpringBoot中的共享Session域详解

    这篇文章主要介绍了SpringBoot中的共享Session域详解,使用Redis解决Session共享问题的原理非常简单,就是把原本存储在不同服务器上的Session拿出来放在一个独立的服务器上,需要的朋友可以参考下
    2024-01-01
  • SpringBoot启动类@SpringBootApplication注解背后的秘密

    SpringBoot启动类@SpringBootApplication注解背后的秘密

    这篇文章主要介绍了SpringBoot启动类@SpringBootApplication注解背后的秘密,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-12-12
  • SpringMVC中Json数据格式转换

    SpringMVC中Json数据格式转换

    本文主要介绍了SpringMVC中Json数据格式转换的相关知识。具有很好的参考价值。下面跟着小编一起来看下吧
    2017-03-03
  • Java中的HttpServletRequest接口详细解读

    Java中的HttpServletRequest接口详细解读

    这篇文章主要介绍了Java中的HttpServletRequest接口详细解读,是一个接口,全限定名称为Jakarta.Serclet.http.HttpServletRequest
    HttpServletRequest接口是Servlet规范的一员,需要的朋友可以参考下
    2023-11-11
  • 详解Java的MyBatis框架和Spring框架的整合运用

    详解Java的MyBatis框架和Spring框架的整合运用

    在Web端的SSH框架整合中Spring主要负责数据库处理,而引入MyBatis后二者的集成使用效果更佳,下面我们就来详解Java的MyBatis框架和Spring框架的整合运用
    2016-06-06
  • springboot中bean的加载顺序问题

    springboot中bean的加载顺序问题

    这篇文章主要介绍了springboot中bean的加载顺序问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-05-05

最新评论