为了弄明白Spring动态绑定表单数据到命令Bean,做一个单元测试来加深理解。
package com.ssh.test;
import java.util.Date;
public class DateCommandBean {
private Date date;
public Date getDate() {
return date;
}
public void setDate(Date date) {
this.date = date;
}
}
package com.ssh.test;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.springframework.beans.propertyeditors.CustomDateEditor;
import org.springframework.mock.web.MockHttpServletRequest;
import org.springframework.web.bind.ServletRequestDataBinder;
import junit.framework.TestCase;
/**
* PropertyEditor单元测试
*
* @author wujinsong
*/
public class DateCommandBeanTest extends TestCase {
DateCommandBean bean;
ServletRequestDataBinder binder;
MockHttpServletRequest request;
/**
* 初始化参数
*/
protected void initParamter() {
bean = new DateCommandBean();
binder = new ServletRequestDataBinder(bean, "beanName");
request = new MockHttpServletRequest();
}
/**
* 测试
*
* @throws Exception
*/
public void testBind() throws Exception {
initParamter();
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
Date expected = dateFormat.parse("2014-05-05");
CustomDateEditor dateEditor = new CustomDateEditor(dateFormat, true);
binder.registerCustomEditor(Date.class, dateEditor);
request.addParameter("date", "2014-05-05");
binder.bind(request);
assertEquals(expected, bean.getDate());
}
}