现在的位置: 首页 > 综合 > 正文

spring mvc String类型转为一个对象

2015年07月25日 ⁄ 综合 ⁄ 共 2448字 ⁄ 字号 评论关闭

首先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";
    }

抱歉!评论已关闭.