springmvc 的参数绑定

1.springmvc的参数绑定的过程

从客户端请求key/value数据,经过参数绑定,将key/value数据绑定到controller方法的形参上。

springmvc中,接收页面提交的数据是通过方法形参来接收。而不是在controller类定义成员变更接收!!!!(单例的哦)

直接在controller方法形参上定义下边类型的对象,就可以使用这些对象。在参数绑定过程中,如果遇到下边类型直接进行绑定。

1)HttpServletRequest:通过request对象获取请求信息

2)HttpServletResponse:通过response处理相应信息

3)HttpSession:通过session对象得到session中存放的对象

4)Model/ModelMap:model是一个接口,modelMap是一个接口实现 .作用:将model数据填充到request域。

5)简单类型:

通过@RequestParam对简单类型的参数进行绑定。

如果不使用@RequestParam,要求request传入参数名称和controller方法的形参名称一致,方可绑定成功。

如果使用@RequestParam,不用限制request传入参数名称和controller方法的形参名称一致。

通过required属性指定参数是否必须要传入,如果设置为true,没有传入参数,报下边错误:

6)pojo类型的参数绑定:页面中input的name和controller的pojo形参中的属性名称一致,将页面中数据绑定到pojo。

7)自定义参数类型绑定实现日期类型绑定

对于controller形参中pojo对象,如果属性中有日期类型,需要自定义参数绑定。

将请求日期数据串传成日期类型,要转换的日期类型和pojo中日期属性的类型保持一致。

自定义类型转化器类:

package cn.itcast.ssm.controller.converter;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

import org.springframework.core.convert.converter.Converter;

public class CustomDateConverter implements Converter<String,Date>{

	public Date convert(String source) {

		//实现 将日期串转成日期类型(格式是yyyy-MM-dd HH:mm:ss)

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

		try {
			//转成直接返回
			return simpleDateFormat.parse(source);
		} catch (ParseException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		//如果参数绑定失败返回null
		return null;
	}

}

需要向处理器适配器中注入自定义的参数绑定组件,因为使用的是注解方式,因此需要在springmvc中进行配置:

<mvc:annotation-driven conversion-service="conversionService"></mvc:annotation-driven>
	<!-- 处理器映射器 -->
	<!-- 处理器适配器 -->
	<!-- 控制器handler -->
	<!-- 视图解析器 -->

	<!-- 配置类型转化器 --><!-- 校验器注册到处理器适配器中 -->
	<mvc:annotation-driven conversion-service="conversionService" validator="validator"></mvc:annotation-driven>
	<!-- 自定义参数绑定 -->
	<bean id="conversionService"
		class="org.springframework.format.support.FormattingConversionServiceFactoryBean">
		<!-- 转换器 -->
		<property name="converters">
			<list>
				<!-- 日期类型转换 -->
				<bean class="cn.itcast.ssm.controller.converter.CustomDateConverter" />
			</list>
		</property>
	</bean>

注意:

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-09-30 21:56:50

springmvc 的参数绑定的相关文章

springmvc(2)--参数绑定

一.以实例来看springmvc各种参数绑定方式 先定义个dto类: public class RestInDto implements Serializable { private static final long serialVersionUID = -5461373449802431627L; private String userName; private BigDecimal salary; private boolean isVip; private int id; ......

SpringMVC学习(六)——SpringMVC高级参数绑定与@RequestMapping注解

高级参数绑定 现在进入SpringMVC高级参数绑定的学习,本文所有案例代码的编写均建立在前文SpringMVC学习(五)——SpringMVC的参数绑定的案例基础之上,因此希望读者能仔细阅读这篇文章. 绑定数组 现有这样一个需求:在商品列表页面选中多个商品,然后删除之.下面是我对该需求的分析:此功能要求商品列表页面中的每个商品前有一个checkbook(复选框),选中多个商品后点击删除按钮把商品id传递给Controller,根据商品id批量删除商品信息. 首先将itemList.jsp页面改

SpringMVC基本参数绑定(7种)

SpringMVC基本参数绑定(7种) 1.默认参数支持 HttpServletRequest HttpServletResponse HttpSession 示例: @RequestMapping("edit.action") public ModelAndView editShop(HttpServletRequest request){ ? String name= request.getParameter("id"); } 2.绑定基本类型(int,stri

SpringMVC学习(五)——SpringMVC的参数绑定

SpringMVC中的参数绑定还是蛮重要的,所以单独开一篇文章来讲解.本文所有案例代码的编写均建立在前文SpringMVC学习(四)——Spring.MyBatis和SpringMVC的整合的案例基础之上,因此希望读者能仔细阅读这篇文章. 默认支持的数据类型 现在有这样一个需求:打开商品编辑页面,展示商品信息.这是我对这个需求的分析:编辑商品信息,需要根据商品id查询商品信息,然后展示到页面.我这里假设请求的url为/itemEdit.action,由于我想要根据商品id查询商品信息,所以需要传

SpringMVC【参数绑定、数据回显、文件上传】

前言 本文主要讲解的知识点如下: 参数绑定 数据回显 文件上传 参数绑定 我们在Controller使用方法参数接收值,就是把web端的值给接收到Controller中处理,这个过程就叫做参数绑定... 默认支持的参数类型 从上面的用法我们可以发现,我们可以使用request对象.Model对象等等,其实是不是可以随便把参数写上去都行???其实并不是的... Controller方法默认支持的参数类型有4个,这4个足以支撑我们的日常开发了 HttpServletRequest HttpServl

二、Springmvc+Mybatis 参数绑定之默认参数绑定 简单类型绑定 POJO绑定 POST乱码问题

web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/

什么是springMvc的参数绑定?

参数绑定通俗来讲就是从页面传过来的数据通过SpringMvc进行接收.接收的数据类型可以有: (1)SpringMvc默认支持的类型:request.session.application等. (2)简单数据类型:String.Integer等. (3)pojo类型. (4)pojo包装类型.我们在搜索操作的时候可以使用pojo包装类型. (5)自定义参数.比如时间的类型的Date,而从页面接收的类型为String,为了将String类型转换为Date类型,我们需要定义转换器进行参数的转换. (

SpringMVC初始化参数绑定--日期格式

一.初始化参数绑定[一种日期格式] 配置步骤: ①:在applicationcontext.xml中只需要配置一个包扫描器即可 <!-- 包扫描器 --> <context:component-scan base-package="cn.happy.controller"></context:component-scan> ②:在处理器类中配置绑定方法  使用@InitBinder注解 在这里首先注册一个用户编辑器 参数一为目标类型   proper

SpringMvc之参数绑定注解详解

引言: 前段时间项目中用到了REST风格来开发程序,但是当用POST.PUT模式提交数据时,发现服务器端接受不到提交的数据(服务器端参数绑定没有加任何注解),查看了提交方式为application/json, 而且服务器端通过request.getReader() 打出的数据里确实存在浏览器提交的数据.为了找出原因,便对参数绑定(@RequestParam. @RequestBody. @RequestHeader . @PathVariable)进行了研究,同时也看了一下HttpMessage