springmvc属性编辑器和自定义参数解析器

自定义的参数解析器

Springmvc调用action方法过程,通过参数解析器:

Springmvc自带了很多的参数解析器,一般能满足需求。可以自定义参数解析器:

需求:

从session中取当前用户身份信息。

实现:

通过形参定义ActiveUser activeUser,需要由参数解析器来解析这个值,

解析过程:从session取出activeUser给形参赋值。

自定义参数解析器方法:

实现:implements WebArgumentResolver

public class UserArgumentResolver implements WebArgumentResolver {

	//methodParameter存储action方法的参数信息
	//webRequest是springmvc封装对象,通过此对象获取request和session等域的值
	@Override
	public Object resolveArgument(MethodParameter methodParameter,
			NativeWebRequest webRequest) throws Exception {
		
		//如果参数的类型是activeUser从session中取当前用户信息设置到action方法形参上
		if(methodParameter.getParameterType().equals(ActiveUser.class)){
			
			//从session中取当前用户信息
			ActiveUser activeUser = (ActiveUser) webRequest.getAttribute(Config.ACTIVEUSER_KEY, WebRequest.SCOPE_SESSION);
			
			return activeUser;//将参数值向action的方法形参赋值
		}
		
		return UNRESOLVED;
	}

}

配置自定义的参数解析器在springmvc.xml中配置:

        <mvc:annotation-driven conversion-service="conversionService">
		<mvc:argument-resolvers>  
	           <bean class="base.action.converters.UserArgumentResolver"/>  
	    </mvc:argument-resolvers> 
	</mvc:annotation-driven>

springmvc属性编辑器

对于日期类型的属性转换通过注入属性编辑器,可以在action类中通过@Binder注解注册属性编辑器。通过自定义属性编辑类方法,定义属性编辑器。

定义方法:

需要实现implements Converter<String, java.util.Date>

String就是原始类型

java.util.Date就是目标类型

目标:

将页面输入的开始采购时间(原始类型),向YycgdCustom类中java.util.Datecjtime_start属性(目标类型)赋值,需要将原始类型字符类型转成日期java.util.Date。

注意:属性编辑器中目标类型和对象中属性类型一致。

接口方法:

public Date convert(String source) {

如果原始类型转换目标类型成功,通过return  向对象的属性赋值。

如果原始类型转换目标类型不成功,通过return  向对象的属性赋值为null.

 

日期类型转换的属性编辑器:

public class DateConverter implements Converter<String, Date> {
	
	public Date convert(String source) {

		if(source != null){//如果从浏览器传入字符串不等于开始转换
			source = source.trim();//去除前后空格
			if(source.equals("")){ 
				source = null;
			}
			if(source!=null){//去除空格后不为空则开始转换
				SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
				try {
					return simpleDateFormat.parse(source);
				} catch (ParseException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
					return null;
				}
			}
			
		}
		return null;
		
	}
}

配置属性编辑器在springmvc.xml中配置:

<!-- 注解驱动 -->
	<mvc:annotation-driven conversion-service="conversionService">
		
	</mvc:annotation-driven>

<!-- 自定义注册属性编辑器 -->
	<bean id="conversionService"
		class="org.springframework.format.support.FormattingConversionServiceFactoryBean">
		<property name="converters">
			<list>
				<bean class="yycg.base.action.converters.StringTrimConverter" />
				<bean class="yycg.base.action.converters.DateConverter" />
				<bean class="yycg.base.action.converters.DatetimeConverter" />
			</list>
		</property>
	</bean>

springmvc属性编辑器和自定义参数解析器demo下载

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值