Spring中的数据绑定

在用spring进行web开发过程中,经常遇到数据绑定的问题,而属性编辑器(PropertyEditor)在其中起到了举足轻重的作用。虽然spring内置了很多属性编辑器方便开发者,比如字节数组编辑器、类对象编辑器、文件对象编辑器等等,但对于实际开发中仍感到不足,这就需要自定义属性编辑器了。
现用一个简单例子说明过程,需求是将一个表明用户姓名的字符串绑定到一个Person对象,用户姓名由first name和end name组成,中间由点分隔,使用到的Person对象也很简单,只有firstName和endName属性以及相应的getter和setter方法。大致如下:
  1. package sample;
  2.  
  3.  public class Person
  4.  {
  5.  private String firstName;
  6.  private String endName;
  7.  
  8.  //getter and setter method goes here...
  9.  }


接下来实现编辑器,自定义编辑器必须继承PropertyEditorSupport类,并覆盖segAsText方法,本例子中代码如下:
  1. package sample;
  2.  
  3.  public class PersonTypeEditor extends PropertyEditorSupport
  4.  {
  5.  public void setAsText(String text)
  6.  {
  7.  int index = text.indexOf(".");
  8.  Person p = new Person();
  9.  p.setFirstName(text.substring(0,index));
  10.  p.setEndName(text.substring(index+1));
  11.  
  12.  setValue(p); //can not be omitted...
  13.  }
  14.  }


最后通过使用CustomEditorConfigurer来为ApplicationContext注册一个新的PropertyEditor:
  1. <bean id="customEditorConfigurer" class="org.springframework.beans.factory.config.CustomEditorConfigurer"> <property name="customEditors">
  2.  <map>
  3.  <entry key="sample.Person">
  4.  <bean class="sample.PersonTypeEditor"/>
  5.  </entry>
  6.  </map>
  7.  </property>
  8.  </bean>

这样之后,在用户提交的注册的表单后的控制器中不用重复调用getParameter方法构建对象了属性了。
Tags: Java
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值