spring MVC (7) 定义自定义类型转换器
2017-08-30 15:54
309 查看
当我们在后台获取页面上的数据的时候,它们之间的数据类型可能不是一致的,这时候就要用到自定义类型转换器。在spring MVC中有自己的类型转换器,但同时,我们也可以根据需求定义自己的类型转换器。
我们知道的是ConversionService 是 Spring 类型转换体系的核心接口。可以利用 ConversionServiceFactoryBean 在 Spring 的 IOC 容器中定义一个 ConversionService. Spring 将自动识别出IOC 容器中的 ConversionService,并在 Bean 属性配置及Spring MVC 处理方法入参绑定等场合使用它进行数据的转换。可通过 ConversionServiceFactoryBean 的 converters 属性注册自定义的类型转换器
首先,定义一个自定义类型转换器类(以将String类型转换为employee对象为例)
converter类:
jsp页面:
handler类:
同时,在Spring.xml的配置文件中添加
我们知道的是ConversionService 是 Spring 类型转换体系的核心接口。可以利用 ConversionServiceFactoryBean 在 Spring 的 IOC 容器中定义一个 ConversionService. Spring 将自动识别出IOC 容器中的 ConversionService,并在 Bean 属性配置及Spring MVC 处理方法入参绑定等场合使用它进行数据的转换。可通过 ConversionServiceFactoryBean 的 converters 属性注册自定义的类型转换器
首先,定义一个自定义类型转换器类(以将String类型转换为employee对象为例)
converter类:
package com.tanla.springmvc.converterTest; import org.springframework.core.convert.converter.Converter; import org.springframework.stereotype.Component; import com.tanla.springmvc.crud.entities.Department; import com.tanla.springmvc.crud.entities.Employee; /** * @author * @date 2017年8月30日上午10:41:54 * @version 1.0 * 自定义转换类:实现将页面上的String类型装换为Employee类型 */ @Component public class EmployeeConverter implements Converter<String, Employee>{ @Override public Employee convert(String source) { // TODO Auto-generated method stub if(source != null) { String [] values = source.split("-"); if(values != null && values.length != 0) { Employee employee = new Employee(); employee.setLastName(values[0]); employee.setEmail(values[1]); employee.setGender(Integer.parseInt(values[2])); Department department = new Department(); department.setId(Integer.parseInt(values[3])); employee.setDepartment(department); return employee; } } return null; } }
jsp页面:
<form action="converterTest" method="post"> <!-- lastname-email-gender-department.id --> <input type="text" name="employee"> <input type="submit" value="submit"> </form>
handler类:
package com.tanla.springmvc.converterTest; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import com.tanla.springmvc.crud.dao.EmployeeDao; import com.tanla.springmvc.crud.entities.Employee; /** * @author tanla * @date 2017年8月30日上午10:56:18 * @version 1.0 */ @Controller public class ConverterTest { @Autowired private EmployeeDao employeeDao; @RequestMapping("converterTest") public String converter(@RequestParam("employee") Employee employee) { employeeDao.save(employee); return "redirect:/emps"; } }
同时,在Spring.xml的配置文件中添加
<mvc:annotation-driven conversion-service="conversionService"></mvc:annotation-driven> <bean id="conversionService" class="org.springframework.context.support.ConversionServiceFactoryBean"> <property name="converters"> <set> <ref bean="employeeConverter"/> </set> </property> </bean>
相关文章推荐
- Spring MVC自定义类型转换器
- Spring MVC自定义日期类型转换器实例详解
- Spring MVC__自定义日期类型转换器
- Spring MVC自定义消息转换器(可解决Long类型数据传入前端精度丢失的问题)
- \t\t在MSSQL中定义和使用C#自定义类型 SQL Server08表类型参数传递
- Struts2之自定义局部类型转换器、全局类型转换器
- springmvc--自定义类型转换器
- MyBatis自定义类型转换器实现加解密
- Geometry类型自定义类型转换器
- 4-4 求自定类型元素的平均 (10分) 本题要求实现一个函数,求N个集合元素S[]的平均值,其中集合元素的类型为自定义的ElementType。 函数接口定义: ElementType Aver
- springmvc之自定义类型转换器ConversionServiceFactoryBean
- Spring MVC JSON自定义类型转换(续)
- Struts2中自定义类型转换器
- Struts2之自定义局部类型转换器、全局类型转换器
- struts2自定义类型转换器
- Struts2之自定义类型转换器
- 学习SpringMVC(十七)之自定义类型转换器
- Struts2之自定义局部类型转换器、全局类型转换器
- struts2自定义类型转换器
- 自定义类型的嵌套定义