首先spring-mvc.xml配置 前2段代码是一起的是启动tomcat所需要的,后3段代码是一起的
<!-- 配置ConversionService -->
<bean id="conversionService"
class="org.springframework.context.support.ConversionServiceFactoryBean">
<property name="converters">
<set>
<ref bean="employeeConverter"/> 这里扫描到的是下面的类,目的是用来转型用的
</set>
</property>
</bean>
在写java
package com.ao.converters;
import org.springframework.core.convert.converter.Converter;
import org.springframework.stereotype.Component;
import com.aode.entities.Department;
import com.aode.entities.Employee;
@Component
public class EmployeeConverter implements Converter<String, Employee>{
@Override
public Employee convert(String source) {
if(source!=null){
String [] vals = source.split("-"); //字符分隔
if(vals!=null&&vals.length==4){
String lastName = vals[0];
String email = vals[1];
Integer gender = Integer.parseInt(vals[2]);
Department department = new Department();
department.setId(Integer.parseInt(vals[3]));
Employee employee = new Employee(null,lastName,email,gender,department);
System.out.println(source +"--convert--"+employee);
return employee;
}
}
return null;
}
}
编写测试类 值的传入地
package com.ao.test;
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.aode.dao.EmployeeDao;
import com.aode.entities.Employee;
@Controller
public class SpringMVCTest {
@Autowired
private EmployeeDao employeeDao;
@RequestMapping("/testConversionServiceConverer")
public String testConverter(@RequestParam("employee") Employee employee){
System.out.println("save :" + employee);
employeeDao.save(employee);
return "redirect:/emps"; //重定向
}
}
<form action="testConversionServiceConverer" method="POST">
<!-- lastname-email-gender-department.id 例如: GG-gg@atguigu.com-0-105 -->
Employee: <input type="text" name="employee"/>
<input type="submit" value="Submit"/>
</form>
//查看全部信息
@RequestMapping("/emps")
public String list(Map<String,Object> map){
map.put("employees", employeeDao.getAll());
return "list";
}