java培训技术自定义类型转换器示例

自定义类型转换器示例

         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培训课程视频供广大学员下载学习。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值