成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專(zhuān)欄INFORMATION COLUMN

SpringMVC數(shù)據(jù)轉(zhuǎn)換

DrizzleX / 2970人閱讀

摘要:數(shù)據(jù)綁定負(fù)責(zé)將中的信息以一定的方式轉(zhuǎn)換并綁定到處理方法的參數(shù)上。整個(gè)過(guò)程的處理核心是由完成。數(shù)據(jù)轉(zhuǎn)換在語(yǔ)言中,在包中提供了一個(gè)接口來(lái)進(jìn)行數(shù)據(jù)轉(zhuǎn)換,的核心功能是將一個(gè)轉(zhuǎn)換為一個(gè)對(duì)象。

數(shù)據(jù)綁定

SpringMVC負(fù)責(zé)將request中的信息以一定的方式轉(zhuǎn)換并綁定到處理方法的參數(shù)上。整個(gè)過(guò)程的處理核心是由DataBinder完成。轉(zhuǎn)換流程如下:
1.DataBinder從ServletRequest中獲取參數(shù)信息;
2.DataBinder獲取處理方法的參數(shù);
3.DataBinder調(diào)用ConversionService組件數(shù)據(jù)類(lèi)型轉(zhuǎn)換和數(shù)據(jù)格式化工作,并將轉(zhuǎn)化結(jié)果填充到參數(shù)對(duì)象中;
4.DataBinder調(diào)用Validator組件進(jìn)行數(shù)據(jù)的校驗(yàn)工作;
5.經(jīng)歷以上步驟后,DataBinder將生成BinderResult對(duì)象,BinderResult中包含轉(zhuǎn)換后的信息,也包含校驗(yàn)后的錯(cuò)誤信息。

數(shù)據(jù)轉(zhuǎn)換

在java語(yǔ)言中,在java.beans包中提供了一個(gè)PropertyEditor接口來(lái)進(jìn)行數(shù)據(jù)轉(zhuǎn)換,PropertyEditor的核心功能是將一個(gè)String轉(zhuǎn)換為一個(gè)java對(duì)象。Spring從3.0開(kāi)始添加一個(gè)通用的類(lèi)型轉(zhuǎn)換模塊即為org.springframework.convert包中,ConversionService是org.springframework.convert包的核心組件,可以通過(guò)使用ConversionServiceFactoryBean在spring的上下文中自定義一個(gè)ConversionService,Spring將自動(dòng)識(shí)別這個(gè)ConversionService,并在SpringMVC進(jìn)行參數(shù)轉(zhuǎn)換時(shí)使用,配置例子如下所示:


     
         
             
         
     

SpringMVC在支持新的轉(zhuǎn)換器框架的同時(shí),也支持javabeans的PropertyEditor,可以在控制器中使用@InitBinder添加自定義的編輯器。舉例如下:

@Controller  
public class DataBinderTestController {  
    @RequestMapping(value = "/dataBind")  
    public String test(DataBinderTestModel command) {  
       ......
    }  
    @InitBinder  

    public void iniiBinder(WebDataBinder binder){  
          
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");  
        format.setLenient(false);  
        binder.registerCustomEditor(Date.class, new CustomDateEditor(format, false));  
    }  
}  

各種轉(zhuǎn)換器的優(yōu)先順序:
1.查詢(xún)通過(guò)@InitBinder自定義的編輯器;
2.查詢(xún)通過(guò)ConversionService裝配的自定義轉(zhuǎn)換器;
3.查詢(xún)通過(guò)WebBindingInitializer接口裝配的全局自定義編輯器。

Formater

除了org.springframework.core.convert.converter接口中定義的三種類(lèi)型的轉(zhuǎn)換器接口,SpringMVC在org.springframework.format包中還提供了一些格式化轉(zhuǎn)換接口,format和converter的最大的區(qū)別是,converter實(shí)現(xiàn)的是object到object的轉(zhuǎn)換,而format實(shí)現(xiàn)的是從String到Object的轉(zhuǎn)換,format包中最重要的接口是Formater,F(xiàn)ormater的使用示例如下所示:

public class DateFormatter  extends Formatter{
    private String datePattern;
    
    private SimpleDateFormat dateFormat;
    
    public DateFormatter(String datePattern){
        this.datePattern=datePattern;
        this.dateFormat=new SimpleDateFormat(datePattern);
    }
    
    public String pring(Date,Locale locale){
        return dateFormat.format(date);
    }
    
    public Date parse(String source,Locale locale) throws ParseException{
        try{
            return dateFormat.parse(source);
        }catch(Exception e){
            ......
        }
    }
}

最后再將DateFormatter注入到ConversionService中,注入方式和Converter的注入方式一樣,也可由此發(fā)現(xiàn),ConversionService是數(shù)據(jù)轉(zhuǎn)換的核心。

Format的注解
在org.springframework.format.annotation包中定義了兩個(gè)注解,@DateTimeFormat和@NumberFormat 這兩個(gè)注解可以用在domain中的屬性上,SpringMVC處理方法參數(shù)綁定數(shù)據(jù)、模型數(shù)據(jù)輸出時(shí)會(huì)自動(dòng)通過(guò)注解應(yīng)用格式化的功能。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/70550.html

相關(guān)文章

  • SpringMVC【參數(shù)綁定、數(shù)據(jù)回顯、文件上傳】

    摘要:那我們就不用在每一個(gè)方法通過(guò)將數(shù)據(jù)傳到頁(yè)面。還能夠配置該參數(shù)是否是必須的。方法的返回值有種重定向轉(zhuǎn)發(fā)內(nèi)部就是將數(shù)據(jù)綁定到域?qū)ο笾械摹W⒔饽軌驅(qū)?shù)據(jù)綁定到中也就是中,如果經(jīng)常需要綁定到中的數(shù)據(jù),抽取成方法來(lái)使用這個(gè)注解還是不錯(cuò)的。 前言 本文主要講解的知識(shí)點(diǎn)如下: 參數(shù)綁定 數(shù)據(jù)回顯 文件上傳 參數(shù)綁定 我們?cè)贑ontroller使用方法參數(shù)接收值,就是把web端的值給接收到Cont...

    Flink_China 評(píng)論0 收藏0
  • SpringMVC入門(mén)筆記

    摘要:簡(jiǎn)介注解用于修飾的方法,根據(jù)的的內(nèi)容,通過(guò)適當(dāng)?shù)霓D(zhuǎn)換為客戶端需要格式的數(shù)據(jù)并且寫(xiě)入到的數(shù)據(jù)區(qū),從而不通過(guò)視圖解析器直接將數(shù)據(jù)響應(yīng)給客戶端。并且這些解析器都實(shí)現(xiàn)了接口,在接口中有四個(gè)最為主要的接口方法。 SpringMVC 細(xì)節(jié)方面的東西很多,所以在這里做一篇簡(jiǎn)單的 SpringMVC 的筆記記錄,方便以后查看。 Spring MVC是當(dāng)前最優(yōu)秀的MVC框架,自從Spring 2.5版本...

    gekylin 評(píng)論0 收藏0
  • SpringMVC學(xué)習(xí)筆記

    摘要:是目前最流行的一種互聯(lián)網(wǎng)軟件架構(gòu)。協(xié)議,是一個(gè)無(wú)狀態(tài)協(xié)議,即所有的狀態(tài)都保存在服務(wù)器端。而這種轉(zhuǎn)化是建立在表現(xiàn)層之上的,所以就是表現(xiàn)層狀態(tài)轉(zhuǎn)化。具體說(shuō),就是協(xié)議里面,四個(gè)表示操作方式的動(dòng)詞。 一、SpringMVC概述 Spring為展現(xiàn)層提供的基于MVC設(shè)計(jì)理念的優(yōu)秀的Web框架,是目前最主流的MVC框架之一 Spring3.0之后全面超越Struts2,成為最優(yōu)秀的MVC框架 S...

    roundstones 評(píng)論0 收藏0
  • SpringMVC總結(jié)

    摘要:前端控制器根據(jù)返回的視圖名,選擇相應(yīng)的視圖進(jìn)行渲染,并將模型數(shù)據(jù)傳入到視圖中以便展示。前端控制器將響應(yīng)的結(jié)果返回給用戶。 SpringMVC總結(jié) 一、spring MVC的工作內(nèi)容 將URL映射到Java類(lèi)或者方法 封裝用戶提交的數(shù)據(jù) 處理請(qǐng)求,調(diào)用相關(guān)的業(yè)務(wù)層,并封裝響應(yīng)的數(shù)據(jù) 將要響應(yīng)的數(shù)據(jù)進(jìn)行渲染 二、SpringMVC的優(yōu)點(diǎn)和特點(diǎn) 與spring無(wú)縫集成(IOC、AOP)...

    raledong 評(píng)論0 收藏0
  • SpringMVC之Controller常用注解功能全解析

    摘要:分發(fā)處理器將會(huì)掃描使用了該注解的類(lèi)的方法,并檢測(cè)該方法是否使用了注解。這種絕對(duì)路徑和相對(duì)路徑所組合成的最終路徑都是相對(duì)于根路徑而言的。屬性屬性主要是用于限制能夠訪問(wèn)的方法類(lèi)型的。屬性的用法和功能與屬性相似。使用標(biāo)記的參數(shù)。 一、簡(jiǎn)介 在SpringMVC 中,控制器Controller 負(fù)責(zé)處理由DispatcherServlet 分發(fā)的請(qǐng)求,它把用戶請(qǐng)求的數(shù)據(jù)經(jīng)過(guò)業(yè)務(wù)處理層處理之后封...

    wanghui 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<