屬性編輯器

          什么是屬性編輯器,作用?
          ?
          ?????spring已經有內置的屬性編輯器,它的作用是 spring配置文件中的字符串轉換成相應的對象進行注入,
          我們可以根據需求自己定義屬性編輯器
          ??
          什么時候需要自定義屬性編輯器
          ? 某些時候需要自定義,spring內置的屬性編輯器,不能把字符串轉換成相應的對象。
          如注入的日期字符串,不能轉換成日期類型注入對象。就需要自定義屬性編輯器。


          如何定義屬性編輯器?
          ??* 繼承PropertyEditorSupport類,覆寫setAsText()方法,參見:UtilDatePropertyEditor.java
          ??* 將屬性編輯器注冊到spring中,參考如下:

          <!--第一種,利用spring的注入把?日期樣式也作為一個參數,更加靈活-->??
          <
          bean?id="customEditorConfigurer"?class="org.springframework.beans.factory.config.CustomEditorConfigurer">
          ?2???<property?name="customEditors">
          ?3????<map>
          ?4?????<entry?key="java.util.Date">
          ?5??????<bean?class="com.bjsxt.spring.UtilDatePropertyEditor">
          ?6???????<property?name="format"?value="yyyy-MM-dd"/>
          ?7??????</bean>
          ?8?????</entry>
          ?9????</map>
          10???</property>
          11??</bean>?

          12?
          ?<!--第二種?-->
          13??<!--
          ?
          14?
          ?<bean?id="utilDatePropertyEditor"?class="com.bjsxt.spring.UtilDatePropertyEditor"></bean>
          15???-->


          java部分代碼:

          ?1?/**
          ?2??*?java.util.Date屬性編輯器?
          ?3??*?@author
          ?Administrator
          ?4?
          ?*
          ?5??*/

          ?6?public?class?UtilDatePropertyEditor?extends?PropertyEditorSupport?{
          ?7?

          ?8??private?String?format="yyyy-MM-dd";
          ?9?
          ?
          10?
          ?@Override
          11??public?void?setAsText(String?text)?throws
          ?IllegalArgumentException?{
          12???System.out.println("UtilDatePropertyEditor.saveAsText()?--?text="?+
          ?text);
          13?
          ??
          14???SimpleDateFormat?sdf?=?new
          ?SimpleDateFormat(format);
          15???try
          ?{
          16????Date?d?=
          ?sdf.parse(text);
          17????this
          .setValue(d);
          18???}?catch
          ?(ParseException?e)?{
          19?
          ???e.printStackTrace();
          20?
          ??}
          21?
          ?}
          22?

          23??public?void?setFormat(String?format)?{
          24???this.format?=
          ?format;
          25?
          ?}
          26?

          27?}
          28
          ?
          29?

          posted on 2009-04-12 23:35 luofeng225 閱讀(270) 評論(0)  編輯  收藏 所屬分類: Spring

          <2009年4月>
          2930311234
          567891011
          12131415161718
          19202122232425
          262728293012
          3456789

          導航

          統計

          公告

          我曾經聽到這么一個故事: 一個年輕的程序員問一個老程序員(一個比較牛逼的公司的CTO) 年輕程序員: 你為什么這么牛X., 就好像沒有你不會的。老程序員: 積累的。年輕程序員: 怎么才能積累到您的程度呢。我每天都在積累。但是似乎都沒有感覺到進步。老程序員: 我從20歲開始做到了一件事情,直到今天,而且盡可能地保證不間斷。年輕程序員: 到底是什么? 老程序員: 我每天保證自己有2個小時在學習新的東西。

          常用鏈接

          留言簿(3)

          隨筆分類

          隨筆檔案

          文章分類

          相冊

          收藏夾

          Java Website

          java技術博客

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 浮山县| 宜川县| 仙居县| 仙桃市| 天长市| 丘北县| 甘德县| 瑞安市| 开江县| 高陵县| 隆德县| 同仁县| 夏河县| 商洛市| 崇文区| 金塔县| 渭南市| 望城县| 武宁县| 尚义县| 江安县| 梨树县| 类乌齐县| 北海市| 新巴尔虎左旗| 霍州市| 改则县| 绥中县| 万源市| 阿勒泰市| 郯城县| 湄潭县| 错那县| 建昌县| 巩义市| 垫江县| 吴旗县| 永仁县| 拉萨市| 凤冈县| 新田县|