SpringMVC自定义类型装换器

JSP页面:

<form action="testConverter" method="post">
		<!-- 输入:小明-123456-25 -->
		<input type="text" name="user">
		<input type="submit" value="自定义类型装换器">
	</form>

后台Controller的方法

/**
	 * 自定义springmvc类型装换器
	 * @param user:实体类,这里用来接收jsp传过来的值。
	 * @return
	 */
	@RequestMapping("/testConverter")
	public String testConverter(User user) {
		System.out.println(user);
		return "success";
	}

springmvc自定义类型装换器的类:

package com.gl.converter;

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

import com.gl.model.User;

/**
 * 自定义springmvc类型装换器
 * @author Administrator
 * 其中Converter<String, User>里面的String,是前端请求来的数据类型,User 是需要转换成的数据类型
 * @Component:spring ioc注解
 */
@Component
public class EmployeeConverter implements Converter<String, User> {

	@Override
	public User convert(String source) {
		if (null != source) {
			//小明-123456-25
			String[] vals = source.split("-");
			if (vals != null && vals.length == 3) {
				User user = new User();
				user.setName(vals[0]);
				user.setPassword(vals[1]);
				user.setAge(Integer.parseInt(vals[2]));
				System.out.println("类型转换成功,user:" + user);
				return user;
			}
		}
		return null;
	}

	
}

Spring MVC的配置文件中加入:

    <mvc:annotation-driven conversion-service="conversionService"></mvc:annotation-driven>
    
    <!-- 把SpringMVC自定义的类型装换器加入到SpringMVC自带的类型装换器的体系中 -->
    <bean id="conversionService" 
    	class="org.springframework.context.support.ConversionServiceFactoryBean">
    	<property name="converters">
    		<set>
    			<ref bean="employeeConverter"/><!-- 自定义类型转换器的类名。首字母小写 -->
    		</set>
    	</property>
    </bean>

猜你喜欢

转载自blog.csdn.net/java_xuetu/article/details/80065655