• 后端——框架——视图层框架——spring_mvc——《官网》阅读笔记——第一章节23(核心对象,LocalResolver)


    1、概念

      mvc与国际化相关的类和接口有以下几个

    1. LocaleContextResolver:它继承自LocaleResolver,主要获取客户端的国际化信息,同时也可以获取时区信息。
    2. HeaderResolver:它是从请求消息头中获取国际化信息,请求头字段为accept-language
    3. CookieResolver:它是从Cookie中获取国际化信息。
    4. SessionResolver:它是从Session中获取国际化信息,同时也可以获取时区信息
    5. LocaleInterceptor:它是从请求URL中的queryString或参数中获取国际化信息。

    2、LocaleContextResolver

      它的概念是提供一种机制,允许自定义获取国际化信息和时区信息的来源。使用场景比较少,因为请求信息和时区信息,在Request对象或ServletContext对象中都能获取。其中CookieResolver和SessionResolver实现了此接口

    3、HeaderResolver(默认方式)

      它是从请求头中获取国际化信息,请求头的字段为accept-language。这是最常用,也是默认的方式。它的实现类是AcceptHeaderLocaleResolver,注入该Resolver对象即可。查看DispatcherServlet.properties,它是默认注入的,无需额外的配置。

    4、CookieResolver

      它是从Cookie中获取国际化信息,需要约定cookie-name的名称,假定约定为lanaguage,CookieResolver每次解析Cookies时就会捕获lanaguage的值,把它的value 作为国际化的信息。

    5、SessionResolver

      它是从Session中获取国际化信息,需要约定session中哪个属性代表国际化信息,例如调用session.setAttribute(“lanaguage”,Locale),那么SessionResolver就会根据lanaguage属性值获取国际化信息。

      使用SessionResolver有两个步骤,

    1. 第一步,注入SessionResolver的对象
    2. 第二步, 配置SessionResolver对象,其中localeAttributeName对应国际化信息,timeZoneAttributeName对应时区信息。例如上例中localeAttributeName对应lanaguage。

      本质是建立SessionResolver对象属性与Session属性之间的对应关系。

    6、LocaleInterceptor

      它是从请求参数中获取国际化信息,需要约定哪个参数代表国际化信息。例如lanaguage对应国际化信息,LocaleChangeInterceptor会拦截请求,将lanaguage参数的值做为国际化信息。

      使用LocaleInterceptor有两个步骤

    1. 第一步,配置LocaleChangeInterceptor拦截器,
    2. 第二步,配置paramName属性,它的值为国际化参数的值,上例中为lanaguage。它的默认值为locale。

      本质是建立LocaleChangeInterceptor对象的paramName属性与包含国际化信息参数的对应关系。

  • 相关阅读:
    动态网络社团检测学习笔记 --- 随机块模型小结之简介
    十五组第四次作业
    17现代软件工程十五组第二次作业
    17现代软件工程十五组第三次作业
    现代软件工程2017十五组成员介绍
    软件测试学习日志3 ————软件测试作业之控制流图
    软件测试学习日志———— round 2 Junit+intellj idea 安装及简单的测试使用
    软件测试学习日志————round 1 some questions of two small programs
    [关于printPrime是()方法的控制流图和点覆盖、边覆盖、主路径覆盖]
    【在myeclipse中使用Junit(4.12), Hamcrest(1.3) 和Eclemma】
  • 原文地址:https://www.cnblogs.com/rain144576/p/12902996.html
Copyright © 2020-2023  润新知