自定义类型转换器示例
1) 需求:字符串转换为对象。
2) 步骤:
- 定义页面
- 控制器方法
package com.atguigu.springmvc.crud.handlers;
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.atguigu.springmvc.crud.dao.EmployeeDao; import com.atguigu.springmvc.crud.entities.Employee;
@Controller public class TypeConversionHandler {
@Autowired private EmployeeDao employeeDao ;
// String -> Employee 需要类型转换器帮忙 @RequestMapping(“/empAdd”) public String empAdd(@RequestParam(value=”employee”) Employee employee){ System.out.println(“TypeConversionHandler – ” + employee); employeeDao.save(employee); return “redirect:/empList”; } } |
- 自定义类型转换器
package com.atguigu.springmvc.converter;
import org.springframework.core.convert.converter.Converter; import org.springframework.stereotype.Component;
import com.atguigu.springmvc.crud.entities.Department; import com.atguigu.springmvc.crud.entities.Employee;
/** * 将字符串转换为Employee对象类型 */ @Component public class StringToEmployeeConverter implements Converter<String, Employee> {
@Override public Employee convert(String source) { if(source!=null){ String[] strs = source.split(“-“); if(strs!=null && strs.length == 4){ String lastName = strs[0]; String email = strs[1]; Integer gender = Integer.parseInt(strs[2]); Integer deptId = Integer.parseInt(strs[3]); Department dept = new Department(); dept.setId(deptId); Employee employee = new Employee(null,lastName,email,gender,dept); System.out.println(source+”–converter–“+employee); return employee ; } } return null; } } |
- 声明类型转换器服务
- <mvc:annotation-driven conversion-service=”conversionService“/> 会将自定义的ConversionService 注册到 Spring MVC 的上下文中。
想要了解跟多关于java培训课程内容欢迎关注尚硅谷java培训,尚硅谷除了这些技术文章外还有免费的高质量java培训课程视频供广大学员下载学习。
上一篇: 大数据培训技术Phoenix和Hbase表的关系
下一篇: 大数据培训技术phoenix表映射