国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

SpringMVC之源碼分析--LocaleResolver和ThemeResolver應(yīng)用

qpal / 2583人閱讀

摘要:需求根據(jù)客戶端環(huán)境,界面顯示不同的國(guó)旗圖案。選擇的技術(shù)方案可利用提供的國(guó)際化和主題定制來(lái)解決。注意此時(shí)返回的中沒(méi)有國(guó)際化及主題相關(guān)的信息。修改請(qǐng)求參數(shù)的值為荷蘭,即后再發(fā)起請(qǐng)求,結(jié)果如下與預(yù)期一致,測(cè)試通過(guò)。

概述

以上分析了Spring MVC的LocaleResolver和ThemeResolver兩個(gè)策略解析器,在實(shí)際項(xiàng)目中很少使用,尤其是ThemeResolver,花精力去分析他們,主要是為了系統(tǒng)的學(xué)習(xí),更多的了解Spring為我們提供的功能組件,通過(guò)這個(gè)過(guò)程,我本人也有了更多的體會(huì),就像上篇文章(https://segmentfault.com/a/1190000014873033)最后提出的小需求,需求本身不是具有實(shí)際意義,其實(shí)就是讓自己去思考,加深已學(xué)知識(shí)的理解,不知道小伙伴們有沒(méi)有思考呢?廢話不多說(shuō),現(xiàn)在就去實(shí)現(xiàn)它。

需求

根據(jù)客戶端環(huán)境,界面顯示不同的國(guó)旗圖案。

分析

在接到一個(gè)需求時(shí),首先要理解需求,實(shí)際工作中可能需求跟產(chǎn)品進(jìn)行多次溝通,其目的就是準(zhǔn)確的理解,理解了需求就可以選擇相應(yīng)的技術(shù)方案去解決。就我們這個(gè)功能來(lái)說(shuō),需求就是可定制不同的國(guó)旗圖案。選擇的技術(shù)方案可利用Spring MVC提供的國(guó)際化和主題定制來(lái)解決。

實(shí)現(xiàn)

項(xiàng)目結(jié)構(gòu)

源碼分析

pom.xml文件

引入Spring MVC依賴以及JSP依賴,代碼如下:



    org.springframework
    spring-webmvc
    5.0.5.RELEASE



javax.servlet
    javax.servlet-api
    3.1.0
    provided



    javax.servlet
    jstl
    1.2

spring-servlet.xml文件

在classpath下新建Spring MVC配置文件,代碼如下:




 







    
    
    



    
    
        
    




    
    
    
    


 

    
    
    
    




    
    




    
    
    
    

web.xml文件

配置Spring MVC 前端控制器,即DispatcherServlet,負(fù)責(zé)攔截用戶請(qǐng)求,代碼如下:


    
    dispatcher
    
    org.springframework.web.servlet.DispatcherServlet
    
    
        contextConfigLocation
        classpath:spring-servlet.xml
    
    
    1
    true



    
    dispatcher
    
    /

國(guó)際化屬性文件

本例中創(chuàng)建了中國(guó)、美國(guó)及芬蘭的國(guó)際化支持,配置文件如下:

messages_zh _CN.properties

message.locale=中國(guó)

messages_en _US.properties

message.locale=美國(guó)

messages_sv _FI.properties

message.locale=芬蘭

主題屬性文件

根據(jù)國(guó)際化配置,主題定義了中國(guó)、美國(guó)及芬蘭的國(guó)旗圖片,配置如下:

theme_ zh_CN.properties

background=/img/China.jpg

theme_ en_US.properties

background=/img/America.jpg

theme_ sv_FI.properties

background=/img/Finland.jpg

視圖及控制器

Controller控制器代碼如下:

@RequestMapping("/demo")
public String demo(HttpServletRequest request , Model model){

    Locale locale = RequestContextUtils.getLocale(request);

    model.addAttribute("locale",locale);

    return "demo";
}

JSP視圖代碼如下:

<%@ page contentType="text/html;charset=UTF-8" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jstl/fmt" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>

    
    Spring MVC Theme
    
    
         : 
        

" style="width: 500px;height: 300px;">

功能測(cè)試

本例以Firefox為客戶端測(cè)試工具,測(cè)試步驟如下:

1、啟動(dòng)項(xiàng)目后,訪問(wèn)界面,在地址欄輸入http://localhost:8088/demo,結(jié)果如下:

由圖可知,此時(shí)系統(tǒng)使用的是默認(rèn)的國(guó)際化屬性文件及顯示默認(rèn)的國(guó)旗圖案,與我們?cè)O(shè)想的一致。注意此時(shí)返回的cookie中沒(méi)有國(guó)際化及主題相關(guān)的信息。

2、通過(guò)請(qǐng)求參數(shù)locale設(shè)置地區(qū)環(huán)境,在地址欄輸入localhost:8088/demo?locale=en_US,并發(fā)起請(qǐng)求,結(jié)果如下:

由上圖可知結(jié)果,與我們的設(shè)想一致,并且服務(wù)端通過(guò)攔截器把國(guó)際化寫(xiě)入了客戶端cookie中。

3、修改請(qǐng)求參數(shù)locale的值為荷蘭,即locale=sv_FI后再發(fā)起請(qǐng)求,結(jié)果如下:

與預(yù)期一致,測(cè)試通過(guò)。

總結(jié)

本例使用CookieLocaleResolver和CookieThemeResolver結(jié)合實(shí)現(xiàn)了國(guó)際化與主題定制需求,Spring MVC為我們提供了不通實(shí)現(xiàn)方式的LocaleResolver和ThemeResolver,可自由組合使用,這兩個(gè)策略解析器主要定制前端信息或樣式,通過(guò)之前的源碼分析及此案例,這塊內(nèi)容就分析完了,希望對(duì)大家有所幫助。

最后創(chuàng)建了qq群方便大家交流,可掃描加入,同時(shí)也可加我qq:276420284,共同學(xué)習(xí)、共同進(jìn)步,謝謝!

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

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

相關(guān)文章

  • SpringMVC源碼分析--ThemeResolver(一)

    摘要:此解析器不能動(dòng)態(tài)設(shè)置主題。實(shí)戰(zhàn)目標(biāo)練習(xí)使用解析器,最終效果如下項(xiàng)目結(jié)構(gòu)在下創(chuàng)建了主題文件夾及主題文件,下創(chuàng)建了靜態(tài)資源文件。是默認(rèn)的解析器,再此配置是為了自定義屬性值,即屬性文件名稱。其實(shí)此解析器與的實(shí)現(xiàn)原理基本相同。 概述 主題就是系統(tǒng)的整體樣式或風(fēng)格,可通過(guò)Spring MVC框架提供的主題(theme)設(shè)置應(yīng)用的整體樣式風(fēng)格,提高用戶體驗(yàn)。Spring MVC的主題就是一些靜態(tài)資...

    Ocean 評(píng)論0 收藏0
  • SpringMVC源碼分析--ThemeResolver(三)

    摘要:類繼承關(guān)系如下該類實(shí)現(xiàn)接口,實(shí)現(xiàn)解析設(shè)置主題功能繼承類,以具備操作功能。新增并更換一張不同的圖片。配置文件只要替換即可,代碼如下配置默認(rèn)的主題文件視圖和控制器視圖和控制器代碼與上一章一致,參考上章代碼。 概述 上節(jié)介紹了SessionThemeResolver解析器,本章分析下CookieThemeResolver,兩個(gè)解析器實(shí)現(xiàn)的功能是一樣的,只是使用的主題載體有區(qū)別而已,Sessi...

    OldPanda 評(píng)論0 收藏0
  • SpringMVC源碼分析--ThemeResolver(二)

    摘要:類實(shí)現(xiàn)接口,使用用戶會(huì)話中的主題。新增并更換一張不同的圖片。通過(guò)關(guān)閉瀏覽器,然后再訪問(wèn)進(jìn)行測(cè)試總結(jié)本章通過(guò)攔截器和結(jié)合實(shí)現(xiàn)了通過(guò)請(qǐng)求參數(shù)控制會(huì)話主題。 概述 本章繼續(xù)分析ThemeResolver的另一個(gè)實(shí)現(xiàn)類SessionThemeResolver,需要了解Spring MVC Theme情況的,可參考上一篇文章https://segmentfault.com/a/119000001...

    antyiwei 評(píng)論0 收藏0
  • SpringMVC源碼分析--請(qǐng)求過(guò)程

    摘要:概述根據(jù)規(guī)范,當(dāng)用戶請(qǐng)求到達(dá)應(yīng)用時(shí),由的方法進(jìn)行處理,對(duì)于而言,處理用戶請(qǐng)求的入口為,通過(guò)其父類的攔截處理。最后創(chuàng)建了群方便大家交流,可掃描加入,同時(shí)也可加我,共同學(xué)習(xí)共同進(jìn)步,謝謝 概述 根據(jù)Servlet規(guī)范,當(dāng)用戶請(qǐng)求到達(dá)應(yīng)用時(shí),由Servlet的service()方法進(jìn)行處理,對(duì)于Spring MVC而言,處理用戶請(qǐng)求的入口為DispatcherServlet,通過(guò)其父類Fra...

    zxhaaa 評(píng)論0 收藏0
  • SpringMVC源碼分析--LocaleResolver(二)

    摘要:概述上一篇就默認(rèn)的進(jìn)行了分析,詳細(xì)請(qǐng)參考,本節(jié)我們繼續(xù)分析學(xué)習(xí),主要分析解析器類繼承關(guān)系如下圖由上面類圖可知,繼承并實(shí)現(xiàn)接口,主要是操作的工具類,繼承接口,增加了信息操作。即通過(guò)實(shí)現(xiàn)的選擇。 概述 上一篇就Spring MVC默認(rèn)的LocaleResovler(AcceptHeaderLocaleResolver)進(jìn)行了分析,詳細(xì)請(qǐng)參考https://segmentfault.com/...

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

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

0條評(píng)論

qpal

|高級(jí)講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<