SpringMVC学习----参数绑定

73 篇文章 0 订阅
52 篇文章 0 订阅

spring参数绑定过程

         从客户端请求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域。

简单类型

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

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

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

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

 

pojo绑定

           页面中input的name和controller的pojo形参中的属性名称一致,将页面中数据绑定到pojo对应的属性。

页面定义:

<table width="100%" border=1>
<tr>
	<td>商品名称</td>
	<td><input type="text" name="name" value="${item.name }"/></td>
</tr>
<tr>
	<td>商品价格</td>
	<td><input type="text" name="price" value="${item.price }"/></td>
</tr>

controller的pojo形参的定义:

public class Items {
    private Integer id;

    private String name;

    private Float price;

    private String pic;
...
}

需要说明的是:简单类型的参数绑定和pojo参数绑定互不影响。

 

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

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

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

public class Items {
    private Integer id;

    private String name;

    private Float price;

    private String pic;

    private Date createtime;
...
}

所以自定义参数绑定将日期串转成java.util.Date类型。

需要向处理器适配器中注入自定义的参数绑定组件。

                    1.自定义日期类型绑定

public class CustomDateConverter implements Converter<String,Date>{

	@Override
	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;
	}

}

                    2.配置方式

 

<!-- 自定义参数绑定 -->
	<bean id="conversionService" class="org.springframework.format.support.FormattingConversionServiceFactoryBean">
		<!-- 转换器 -->
		<property name="converters">
			<list>
				<!-- 日期类型转换 -->
				<bean class="cn.itcast.ssm.controller.converter.CustomDateConverter"/>
			</list>
		</property>
		
	
	</bean>

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值