`
newchq
  • 浏览: 55050 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

Spring整理3 -- 自定义属性编辑器

阅读更多

在我们注入属性时,遇到是日期类型,如果按普通属性去注入,则会报错,那我们该怎么解决?解决办法:自定义属性编辑器。

什么是属性编辑器,作用?

自定义属性编辑器,spring配置文件中的字符串转换成相应的对象进行注入spring已经有内置的属性编辑器,我们可以根据需求自己定义属性编辑器。

步骤:

1、  定义一个属性编辑器必须继承java.beans.PropertyEditorSupport

2、  在配置文件配置上我们定义的属性编辑器

下面我们来做一个java.util.Date属性编辑器,代码如下:

定义一个属性编辑器UtilDatePropertyEditor:

/**

 * java.util.Date属性编辑器 

 */

public class UtilDatePropertyEditor extends PropertyEditorSupport {

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

    @Override

    public void setAsText(String text) 

throws IllegalArgumentException {

       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;

    }

}

 配置文件applicationContext.xml

   

  <!-- 定义属性编辑器 -->      

    <bean id="customEditorConfigurer" 

class="org.springframework.beans.factory.config.CustomEditorConfigurer">

       <property name="customEditors">

           <map>

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

                  <bean class="spring.UtilDatePropertyEditor">

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

                  </bean>

              </entry>

           </map>

       </property>

    </bean>

  

以后我们就可以为java.util.Date进行注入,和普通属性一样使用,测试代码(略)

分享到:
评论

相关推荐

    Spring框架

    - **步骤3**:为了支持更复杂的属性类型(如日期类型),可以通过创建自定义的属性编辑器`UtilDatePropertyEditor`来实现。 - **步骤4**:将自定义的属性编辑器注册到另一个配置文件`applicationContext-editor.xml`...

    Java_笔记整理

    ### Java_笔记整理 #### 知识点概览 本篇文档主要涵盖了Java学习过程中的核心知识点,并且涉及到了部分Linux/Unix基础知识。通过这份笔记,我们能够深入了解Java语言的基础特性、面向对象的设计原则以及一系列高级...

    B站整理的乐优商城笔记

    我们还学习了如何使用`docker exec`命令进入容器中并安装Vim编辑器。 2. 序列化和反序列化: 在本节中,我们学习了如何将集合转换成JSON,并将JSON反序列化成集合。在Java语言中,我们可以使用Jackson库来实现序列...

    Java学习笔记-个人整理的

    {1.13.3.3}文本创建与编辑}{43}{subsubsection.1.13.3.3} {1.14}\texttt {PATH}}{43}{section.1.14} {1.14.1}Java的打包命令}{44}{subsection.1.14.1} {2}Everything is an Object }{45}{chapter.2} {2.1}类与...

    FreeMarker学习资料整理

    - **变量引用**:通过`${}`来引用数据模型中的变量,如`${user.name}`表示获取用户对象的name属性。 2. **模板设计原则** - **分离关注点**:FreeMarker遵循MVC模式,将视图(模板)与控制器(Java代码)分离,...

    MyEclipse 6 Java EE 开发中文手册

    - **设置编辑器字体、颜色和显示行号**:个性化编辑器界面。 - **Link文件**:链接外部文件到项目中。 - **安装插件**:扩展Eclipse的功能。 - **获取帮助和阅读帮助文档**:访问在线或离线帮助文档。 - **CVS团队源...

    eclipse 值

    Eclipse提供了多种工具来操作这些数据,如文本编辑器(用于编辑属性文件)、首选项对话框(用于修改设置)和运行配置编辑器(用于定制运行和调试参数)。 在处理遗留问题时,关键步骤包括: 1. **识别问题**:确定...

    idea简单教程

    1. 主界面:包括菜单栏、工具栏、项目视图、编辑器、工具窗口等部分。 2. 工具窗口:如Project、Structure、Version Control、Run等,可以通过View菜单或按快捷键进行切换。 **三、创建新项目** 1. File &gt; New &gt; ...

    iReprot相关资料收集

    它可能会详细介绍报表设计界面的各个部分,包括设计区、属性面板、字段列表和脚本编辑器等,以及如何使用这些工具进行报表设计。 《iReport入门.pdf》可能是一个更为深入的教程,除了基础操作外,还可能包含更复杂...

    enhancedgrid server page

    3. **DemoJsonAction.java**: 这个文件可能是Java后端实现分页逻辑的控制器。在Java Spring MVC或者类似的框架中,它可能负责接收前端请求,根据请求参数(如页码和每页大小)从数据库中查询对应的数据,并将其转化...

Global site tag (gtag.js) - Google Analytics