SpringMVC中各種解析器

2021-10-07 04:25:35 字數 2856 閱讀 2179

1.視**析器(主要是mvc配置檔案中配置)將controller返回的string型別資訊到視**析器組成乙個完整的位址,進行請求**

本質就是將internalresourceviewresolver進行ioc布置到核心容器中,自己對該類的屬性進行注入

<

!--視**析器--

>

"viewresolver"

class

="org.springframework.web.servlet.view.internalresourceviewresolver"

>

"prefix" value=

"/web-inf/"

>

<

/property>

//字首

"suffix" value=

".jsp"

>

<

/property>

//字尾

<

/bean>

2.型別轉換解析器 springmvc中一般自帶了一些型別轉換,但有時候我們可以進行配置轉換方法

注意 :要使用自定義轉換器,那麼開啟mvc註解驅動時,需要定義conversion-service屬性

首先需要自己定義乙個實現類,實現converter介面,重寫轉換方法,定義規則

然後在mvc配置檔案中配置型別轉換解析器

進行了conversionservicefactorybean類的ioc,對converters陣列型別屬性進行賦值,自定義轉換器是可以多個的

開啟註解驅動:

"conversionservicefactorybean"

>

<

/mvc:annotation-driven>

型別轉換器:

="org.springframework.context.support.conversionservicefactorybean" id=

"conversionservicefactorybean"

>

"converters"

>

<

!--配置自定義轉器--

>

="com.ls.converter.stringtodateconverter"

>

<

/bean>

<

/array>

<

/property>

<

/bean>

3.檔案上傳解析器 當檔案上傳時需要(這個除了屬性可以改變,id是寫死的multipartresolver,使用其他的執行時會出錯)

將commonsmultipartresolver類ioc,並注入相應屬性例如最大大小 最小大小這些

<

!--檔案上傳解析器--

>

"multipartresolver"

class

="org.springframework.web.multipart.commons.commonsmultipartresolver"

>

<

!--最大上傳檔案大小 bt 1024

*1024

5m--

>

"maxuploadsize" value=

"5242880"

>

<

/property>

<

/bean>

4.異常解析器

最為方便,自己定義異常類,只要實現handlerexceptionresolver介面,重寫resolveexception方法定義異常規則,然後將此實現類部署到ioc就可以

1. 實現handlerinterceptor介面,重寫方法(不自動提示,快捷鍵alt+insert選擇)

2. 配置***解析器 mvc:interceptors標籤

* 實現handlerinterceptor介面 重寫方法 不自動提示 是alt+insert選擇重寫 (一定要注意多個***之間的攔截順序)

* prehandle方法 在執行controller之前執行

* posthandle方法 在執行完成controller之後執行

* aftercompletion方法 在試圖完成之後執行

* 返回值false帶代表攔截 true就是放行 只有放行才能繼續下一步

多個***執行時:prehandler方法先後執行

posthandler方法,從後往前執行

aftercompletion方法,從後往前執行

配置檔案:

<

!--*** 多個自定義***依次執行 但執行方法時順序不一致--

>

/*

-攔截路徑

/*代表匹配一級 eg:/user

/**代表匹配多級 eg:/user/find

<

!--自定義***配置ioc--

>

"interceptor"

class

="com.ls.interceptor.myinterceptor"

>

<

/bean>

<

/mvc:interceptor>

執行順序效果圖:

Spring MVC多解析器對映

如果想在spring mvc應用程式中使用多個視 析器,那麼可以使用order屬性設定優先順序順序。以下示例顯示如何在spring web mvc框架中使用resourcebundleviewresolver和internalresourceviewresolver。multipleresolver...

SpringMVC 自定義引數解析器

閱讀目錄 回到頂部 public inte ce handlermethodargumentresolversupportsparameter 方法返回 boolean 值,表示是否啟用該解析器,true 表示啟用,false 表示不啟用 resolveargument 方法表示方法引數的解析過程,...

使用解析器

使用解析器 使用解析器是非常簡單,可以使用它自己的詞法分析器,但是,用fsyacc.exe 產生的解析器總是要求詞法分析器。在這一小節,我們將討論如何使用自己的詞法分析器,以及與解析器聯合。警告記住f 編譯器不能直接使用.fsl 和 fsy 檔案,需要用fslex.exe 和 fsyacc.exe ...