(一)实现Converter接口,自定义一个转换器:
@Component
public class String2EmpConverter implements Converter<String, Employee> {
@Autowired
DepartmentDao depDao;
@Override
//String format :"empName-empName@163.com-1-101"
public Employee convert(String source) {
Employee employee = new Employee();
// TODO Auto-generated method stub
if (source!=null && source.contains("-")) {
String[] src = source.split("-");
employee.setLastName(src[0]);
employee.setEmail(src[1]);
employee.setGender(Integer.parseInt(src[2]));
employee.setDepartment(depDao.getDepartment(Integer.parseInt(src[3])));
}
return employee;
}
}
(二)SpringDispatcherServlet中配置ServiceFactoryBean:
<bean id="myConversionService" class="org.springframework.context.support.ConversionServiceFactoryBean">
<property name="converters">
<set>
<bean class="com.edu.component.String2EmpConverter"></bean>
</set>
</property>
</bean>
(三)添加注解驱动标签,并标注使用自行配置的ConversionService:
<!-- 使用自己配置的ConversionService组件 -->
<mvc:annotation-driven conversion-service="myConversionService"/>
(四) JSP文件内增加提交表单:
<form action="${ctp}/quickAddEmp">
<input type="text" name="empInfo" value="empName-empName@163.com-1-101"/>
<input type="submit" value="快速添加"/>
</form>
(五)EmployeeController中处理请求:
@RequestMapping("/quickAddEmp")
public String quickAdd(@RequestParam("empInfo")Employee emp) {
System.out.println("quick add emp : "+ emp);
empDao.save(emp);
return "redirect:/emps";
}
(六) 成功添加Tom和Jerry: