您的位置:首頁(yè) > 軟件資訊 > 編程技巧 > 網(wǎng)站開(kāi)發(fā)
來(lái)源:北大青鳥飛迅校區(qū)|發(fā)布時(shí)間:2013-04-23 09:00:18
Struts2-Date數(shù)據(jù)類型的操作之轉(zhuǎn)換器的應(yīng)用:
一、概述
在B/S應(yīng)用中,將字符串請(qǐng)求參數(shù)轉(zhuǎn)換為相應(yīng)的數(shù)據(jù)類型,是MVC框架提供的功能,而Struts2是很好的MVC框架實(shí)現(xiàn)者,理所當(dāng)然,提供了類型轉(zhuǎn)換機(jī)制。
Struts2的類型轉(zhuǎn)換是基于OGNL表達(dá)式的,只要我們把HTML輸入項(xiàng)(表單元素和其他GET/POET的參數(shù))命名為合法的OGNL表達(dá)式,就可以充分利用Struts2的轉(zhuǎn)換機(jī)制。
除此之外,Struts2提供了很好的擴(kuò)展性,開(kāi)發(fā)者可以非常簡(jiǎn)單的開(kāi)發(fā)自己的類型轉(zhuǎn)換器,完成字符串和自定義復(fù)合類型之間的轉(zhuǎn)換?傊琒truts2 的類型轉(zhuǎn)換器提供了非常強(qiáng)大的表現(xiàn)層數(shù)據(jù)處理機(jī)制,開(kāi)發(fā)者可以利用Struts2的類型轉(zhuǎn)換機(jī)制來(lái)完成任意的類型轉(zhuǎn)換。
二、實(shí)現(xiàn)自定義類型轉(zhuǎn)換器
實(shí)現(xiàn)TypeCoverter接口,或者繼承DefaultTypeConverter實(shí)現(xiàn)類(該類實(shí)現(xiàn)了TypeCoverter接口),通過(guò)繼承該實(shí)現(xiàn)類來(lái)實(shí)現(xiàn)自己的類型轉(zhuǎn)換器。重寫convertValue方法即可。
為了簡(jiǎn)化類型轉(zhuǎn)換器的實(shí)現(xiàn),Struts2提供了一個(gè)StrutsTypeConverter抽象類,這個(gè)抽象類是DefaultConverter的子類。實(shí)現(xiàn)了方法,并提供了2個(gè)不同轉(zhuǎn)換方向的方法:Object
convertToString(Map context,String[] values,Class toClass)和String convertFromString(Map context,Object o)。
三、注冊(cè)應(yīng)用
實(shí)現(xiàn)了自定義類型轉(zhuǎn)換器之后,將該類型轉(zhuǎn)換器注冊(cè)在Web應(yīng)用中,Struts2框架才可以正常使用該類型轉(zhuǎn)換器。
關(guān)于類型轉(zhuǎn)換器的注冊(cè)方式,主要有3中:
A、注冊(cè)局部類型轉(zhuǎn)換器:僅僅對(duì)某個(gè)Action的屬性起作用。
B、注冊(cè)全局類型轉(zhuǎn)換器:對(duì)所有Action的特定類型的屬性都會(huì)生效。
C、使用JDK1.5的注釋來(lái)注冊(cè)類型轉(zhuǎn)換器:通過(guò)注釋方式來(lái)生成類型轉(zhuǎn)換器。
1、局部類型轉(zhuǎn)換器
提供如下格式的文件
文件名: ActionName-conversion.properties
內(nèi)容:多個(gè)propertyName(屬性名)=類型轉(zhuǎn)換器類(含包名),如 date=com.aumy.DateConverter
存放位置:和ActionName類相同路徑。
2、全局類型轉(zhuǎn)換器
提供如下格式的文件
文件名: xwork-conversion.properties
內(nèi)容: 多個(gè)“復(fù)合類型=對(duì)應(yīng)類型轉(zhuǎn)換器”項(xiàng)組成,如 java.Util.Date=com.aumy.DateConverter
存放位置:WEB-INF/classes/目錄下。
四、應(yīng)用示例
由于Struts2對(duì)日期轉(zhuǎn)換顯示時(shí),會(huì)顯示日期和時(shí)間,現(xiàn)在項(xiàng)目只需要顯示日期,所以采用自定義的類型轉(zhuǎn)換器來(lái)實(shí)現(xiàn)日期顯示。
1、類型轉(zhuǎn)換類
package com.globalzt.framework.common;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
全程面授,不高薪都難
申請(qǐng)成功后,我們將在24小時(shí)內(nèi)與您聯(lián)系
招生熱線: 4008-0731-86 / 0731-82186801
學(xué)校地址: 長(zhǎng)沙市天心區(qū)團(tuán)結(jié)路6號(hào)
Copyright © 2006 | 湖南大計(jì)信息科技有限公司 版權(quán)所有
湘ICP備14017520號(hào)-3