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

資訊專欄INFORMATION COLUMN

SpringMVC之源碼分析--LocaleResolver和ThemeResolver應用

qpal / 2595人閱讀

摘要:需求根據客戶端環境,界面顯示不同的國旗圖案。選擇的技術方案可利用提供的國際化和主題定制來解決。注意此時返回的中沒有國際化及主題相關的信息。修改請求參數的值為荷蘭,即后再發起請求,結果如下與預期一致,測試通過。

概述

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

需求

根據客戶端環境,界面顯示不同的國旗圖案。

分析

在接到一個需求時,首先要理解需求,實際工作中可能需求跟產品進行多次溝通,其目的就是準確的理解,理解了需求就可以選擇相應的技術方案去解決。就我們這個功能來說,需求就是可定制不同的國旗圖案。選擇的技術方案可利用Spring MVC提供的國際化和主題定制來解決。

實現

項目結構

源碼分析

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,負責攔截用戶請求,代碼如下:


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



    
    dispatcher
    
    /

國際化屬性文件

本例中創建了中國、美國及芬蘭的國際化支持,配置文件如下:

messages_zh _CN.properties

message.locale=中國

messages_en _US.properties

message.locale=美國

messages_sv _FI.properties

message.locale=芬蘭

主題屬性文件

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

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;">

功能測試

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

1、啟動項目后,訪問界面,在地址欄輸入http://localhost:8088/demo,結果如下:

由圖可知,此時系統使用的是默認的國際化屬性文件及顯示默認的國旗圖案,與我們設想的一致。注意此時返回的cookie中沒有國際化及主題相關的信息。

2、通過請求參數locale設置地區環境,在地址欄輸入localhost:8088/demo?locale=en_US,并發起請求,結果如下:

由上圖可知結果,與我們的設想一致,并且服務端通過攔截器把國際化寫入了客戶端cookie中。

3、修改請求參數locale的值為荷蘭,即locale=sv_FI后再發起請求,結果如下:

與預期一致,測試通過。

總結

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

最后創建了qq群方便大家交流,可掃描加入,同時也可加我qq:276420284,共同學習、共同進步,謝謝!

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/69407.html

相關文章

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

    摘要:此解析器不能動態設置主題。實戰目標練習使用解析器,最終效果如下項目結構在下創建了主題文件夾及主題文件,下創建了靜態資源文件。是默認的解析器,再此配置是為了自定義屬性值,即屬性文件名稱。其實此解析器與的實現原理基本相同。 概述 主題就是系統的整體樣式或風格,可通過Spring MVC框架提供的主題(theme)設置應用的整體樣式風格,提高用戶體驗。Spring MVC的主題就是一些靜態資...

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

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

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

    摘要:類實現接口,使用用戶會話中的主題。新增并更換一張不同的圖片。通過關閉瀏覽器,然后再訪問進行測試總結本章通過攔截器和結合實現了通過請求參數控制會話主題。 概述 本章繼續分析ThemeResolver的另一個實現類SessionThemeResolver,需要了解Spring MVC Theme情況的,可參考上一篇文章https://segmentfault.com/a/119000001...

    antyiwei 評論0 收藏0
  • SpringMVC源碼分析--請求過程

    摘要:概述根據規范,當用戶請求到達應用時,由的方法進行處理,對于而言,處理用戶請求的入口為,通過其父類的攔截處理。最后創建了群方便大家交流,可掃描加入,同時也可加我,共同學習共同進步,謝謝 概述 根據Servlet規范,當用戶請求到達應用時,由Servlet的service()方法進行處理,對于Spring MVC而言,處理用戶請求的入口為DispatcherServlet,通過其父類Fra...

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

    摘要:概述上一篇就默認的進行了分析,詳細請參考,本節我們繼續分析學習,主要分析解析器類繼承關系如下圖由上面類圖可知,繼承并實現接口,主要是操作的工具類,繼承接口,增加了信息操作。即通過實現的選擇。 概述 上一篇就Spring MVC默認的LocaleResovler(AcceptHeaderLocaleResolver)進行了分析,詳細請參考https://segmentfault.com/...

    RichardXG 評論0 收藏0

發表評論

0條評論

qpal

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<