`
cuisuqiang
  • 浏览: 3954266 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
3feb66c0-2fb6-35ff-968a-5f5ec10ada43
Java研发技术指南
浏览量:3665238
社区版块
存档分类
最新评论

SpringMVC 表单提交参数不匹配报错

    博客分类:
  • SSH
阅读更多

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));  
}

  

请您到ITEYE网站看 java小强 原创,谢谢!
http://cuisuqiang.iteye.com/ 

自建博客地址:http://www.javacui.com/ ,内容与ITEYE同步!

1
1
分享到:
评论

相关推荐

    Spring In Action SpringMVC 提交表单

    《Spring In Action: SpringMVC 提交表单详解》 在Web开发中,SpringMVC作为Spring框架的一部分,是处理HTTP请求和响应的强大工具。它为开发者提供了构建高性能、易于测试的Web应用程序的结构。本篇文章将深入探讨...

    springmvc 第二个例子(接收表单参数+重定向)

    这种方法可以避免再次提交表单数据,因为它不会将原始请求的POST数据发送到新URL。 重定向在实际应用中非常常见,比如在完成某个操作后,比如用户注册或购物结算,通常会重定向到一个新的页面来显示结果或提示信息...

    springMvc集合接收参数的用法

    总结,Spring MVC提供了强大的功能来处理各种类型的HTTP请求和参数,无论是Ajax还是传统的表单提交。通过合理使用`@RequestBody`和`@ModelAttribute`注解,以及适当的参数类型,你可以轻松地处理包括集合在内的复杂...

    SpringMVC表单标签简介

    二是支持使用除GET和POST之外的HTTP方法(如DELETE、PUT)提交表单数据。 ###### 1.1 绑定表单对象 `&lt;form:form&gt;` 标签可以绑定表单数据到一个指定的对象上,通常是控制器中传递给视图的一个模型对象。例如,假设...

    基于SpringMVC接受JSON参数详解及常见错误总结

    - **数据类型不匹配**:请求中的数据类型和控制器方法参数类型不一致时会导致错误,例如前端发送的是字符串类型的数字,而后端期待的是整型。 - **缺少数据**:如果前端忘记发送某个必须的参数,而后端的控制器...

    SpringMVC接收请求参数所有方式总结

    表单数据通常以POST请求的方式发送,SpringMVC会自动将这些参数绑定到控制器方法的参数上。对于简单类型,如`long`、`int`等,可以使用`@RequestParam`注解。对于复杂对象,可以直接作为方法参数,Spring会尝试将...

    SpringMVC入门很简单之表单标签

    6. **数据绑定与验证**:SpringMVC支持数据绑定,即自动将表单提交的数据映射到Java对象的属性上。同时,可以使用JSR-303/JSR-349提供的注解进行数据验证,如`@NotBlank`、`@Size`等。 7. **处理器适配器...

    SpringMVC表单标签知识点详解

    3. 订单提交表单 4. 评论表单 SpringMVC表单标签是SpringMVC框架中的一种重要组件,用于处理表单数据。它提供了多种类型的表单标签,各自具有不同的属性和用途。通过使用SpringMVC表单标签,可以简化表单的开发过程...

    Servlet、Struts、SpringMVC对于表单重复提交的解决方案

    3. **Redirect重定向**:处理完表单后,使用HttpServletResponse的`sendRedirect()`方法,将用户重定向到另一个页面,这样即使用户刷新页面,也不会重新提交表单。 4. **使用同步锁(synchronized)**:在Servlet...

    SpringMVC接收页面表单参数

    SpringMVC接收页面表单参数 SpringMVC是基于Java实现的 Model-View-Controller(MVC)模式的Web应用框架,它提供了许多强大和灵活的特性来处理Web请求。其中,接收页面表单参数是Web应用中非常常见的需求。下面...

    SpringMVC中使用bean来接收form表单提交的参数时的注意点

    SpringMVC中使用Bean来接收Form表单提交的参数时的注意点 在 SpringMVC 框架中,使用 Bean 来接收 Form 表单提交的参数是非常常见的操作。然而,在这个过程中,需要注意一些细节,以免出现问题。本文将介绍 ...

    SpringMVC后台接收请求参数的几种方式Demo

    命令对象是一种特殊的模型属性,专门用于处理表单提交。它们与`@ModelAttribute`一起使用,但更专注于表单验证和数据绑定: ```java @PostMapping("/submit") public String submitForm(@Validated @...

    springmvc 参数绑定例子1

    总结,Spring MVC的参数绑定机制极大地提高了开发效率,无论是简单的表单提交还是复杂的AJAX请求,都能轻松处理。通过合理的注解使用和自定义处理器,我们可以构建出高效且健壮的Web应用。在这个例子中,"testgit...

    Http请求传参SpringMVC接收参数详细解析

    本文将深入解析SpringMVC如何处理GET和POST请求中的参数,以及如何使用@RequestParam和@RequestBody注解。 1. GET请求 GET请求通常用于获取资源,其参数直接附加在URL路径后面,以键值对的形式存在。例如,`/api/...

    springMVC Validator表单验证

    3. **自定义注解**:SpringMVC允许开发者创建自定义的数据验证注解,比如`@Validated`,它可以应用于控制器方法的参数上,指示Spring进行验证。这些注解可以与JSR-303/JSR-349标准的注解(如`@NotNull`, `@Size`, `@...

    springmvc 参数绑定例子

    例如,当用户提交表单时,表单字段通常会作为查询参数或POST数据发送。通过在方法参数前加上`@RequestParam`并指定对应的参数名,Spring MVC会自动将请求中的相应参数值绑定到该方法参数上。例如: ```java @...

    springmvc入门参数绑定ssm整合

    SpringMVC入门参数绑定SSM整合 SpringMVC是一种基于MVC模式的Web应用程序框架,它是Spring框架的一个模块,用于开发Web项目。下面是SpringMVC入门参数绑定SSM整合的知识点总结: 一、SpringMVC概述 SpringMVC是...

    SpringMVC自定义参数绑定实现详解

    第二步是如果不匹配,可以通过@RequestParam注解指定request请求的参数名绑定到哪个方法形参上。 @RequestParam注解可以指定request请求的参数名绑定到哪个方法形参上,並可以设置必填的参数通过required属性设置为...

    SpringMVC接收多个对象的4种方法

    1. **表单提交,以字段数组接收** 这是最基础的方法,通过在HTML表单中定义相同名称的输入字段,但通过数组索引来区分不同的数据。例如,创建两个用户时,可以分别输入ID、用户名和密码,每个字段都带有不同的索引...

    springmvc接收ajax请求注意事项

    type: "post", // 提交方式,表单只能以 post 方式提交 async: true, // 如果需要发送同步请求,请将此选项设置为 false contentType: "application/x-www-form-urlencoded", success: function(data) { alert...

Global site tag (gtag.js) - Google Analytics