Java网课基础笔记(21)19-08-03

1.绑定包装pojo

例:使用包装的pojo接受商品信息的查询条件

  • 包装对象定义如下
public class QueryVo {
	private Item item;

	public Item getItem() {
		return item;
	}

	public void setItem(Item item) {
		this.item = item;
	}
	
}
  • 页面定义如下
<td>商品id<input type="text" name="item.id"/> </td>
<td>商品名称<input type="text" name="item.name"/> </td>
  • 接受查询条件
//绑定包装数据类型
	@RequestMapping("/queryItem")
	public String queryItem(QueryVo queryVo){
		System.out.println(queryVo.getItem().getId());
		System.out.println(queryVo.getItem().getName());
		return "success";
	}
	

2.自定义参数绑定

例:在商品修改页面可以修改商品的生产日期,并且根据业务需求自定义日期格式

分析:由于日期数据有很多种格式,spingmvc没办法把字符串转换成日期类型。所以需要自定义参数绑定。前端控制器接受到请求后,找到注解形式的处理器适配器,对RequestMapping标记的方法进行适配,并对方法中的形参进行参数绑定。可以在springmvc处理器适配器上自定义转换器Converer进行参数绑定。

一般使用<mvc:annotation-driven/>注解驱动加载处理器适配器,可以在此标签上进行配置。

  • jsp页面显示时间
<tr>
				<td>商品生产日期</td>
				<td><input type="text" name="createtime"
					value="<fmt:formatDate value="${item.createtime}" pattern="yyyy-MM-dd HH:mm:ss"/>" /></td>
			</tr>
  • 自定义Converer
//Converter<S, T>
//S:source,需要转换的源的类型
//T:target,需要转换的目标类型
public class DateConverter implements Converter<String, Date> {
	@Override
	public Date convert(String source) {
		try {
			//把字符串转换为日期转换类型
			SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
			Date date=simpleDateFormat.parse(source);
			return date;
		} catch (Exception e) {
			// TODO: handle exception
			e.printStackTrace();
		}
		//如果转换异常就返回空
		return null;
	}

}
  • 配置Converter

可以同时配置多个转换器

<!-- 注解驱动 -->
	<mvc:annotation-driven conversion-service="conversionService"></mvc:annotation-driven>
	<!-- 转换器配置 -->
	<bean id="conversionService" class="org.springframework.format.support.FormattingConversionServiceFactoryBean">
		<property name="converters">
			<set>
				<bean class="com.feng.ssm.converter.DateConverter"></bean>
			</set>
		</property>
	</bean>

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值