Spring的自定义属性编辑器

本文介绍如何在Spring中自定义属性编辑器以实现字符串到特定对象类型的转换。通过继承PropertyEditorSupport并重写setAsText()方法,可以创建自定义的日期属性编辑器,并将其注册到Spring容器中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

什么是属性编辑器:自定义属性编辑器就是将Spring的字符串转换成相对应的对象进行注入,Spring已经有了内置的属性编辑器,我们可以自己定义属性编辑器。

如何定义属性编辑器:

(1)继承PropertyEditorSupport,重写setAsText()方法。

package com.bjsxt.spring;

 

import java.beans.PropertyEditorSupport;

import java.text.ParseException;

import java.text.SimpleDateFormat;

import java.util.Date;

 

/**

 * java.util.Date属性编辑器

 * @author Administrator

 *

 */

public class UtilDatePropertyEditor extends PropertyEditorSupport {

 

       private String format="yyyy-MM-dd";

      

       @Override

       public void setAsText(String text) throws IllegalArgumentException {

              System.out.println("UtilDatePropertyEditor.saveAsText() -- text=" + text);

             

              SimpleDateFormat sdf = new SimpleDateFormat(format);

              try {

                     Date d = sdf.parse(text);

                     this.setValue(d);

              } catch (ParseException e) {

                     e.printStackTrace();

              }

       }

 

       public void setFormat(String format) {

              this.format = format;

       }

 

}


(2)将属性编辑器注册到Spring中。

<bean id="customEditorConfigurer" class="org.springframework.beans.factory.config.CustomEditorConfigurer">

              <property name="customEditors">

                     <map>

                            <entry key="java.util.Date">

                                   <bean class="com.bjsxt.spring.UtilDatePropertyEditor">

                                          <property name="format" value="yyyy-MM-dd"/>

                                   </bean>

                            </entry>

                     </map>

              </property>

       </bean>  

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值