05|第五课:视图、视图解析器、国际化

一、历史回顾

(一)、ModelAndView

05|第五课:视图、视图解析器、国际化_第1张图片
图示

二、视图、视图解析器、国际化

(一)、视图(View)、视图解析器、国际化

1、View接口(视图)

View接口是视图的顶级接口

实现该接口的实现类比较多,这里特别讲解几个,如下图所示:

05|第五课:视图、视图解析器、国际化_第2张图片
View视图实现类简介

2、ViewResolver接口(视图解析器)

实现该接口的实现类比较多,这里特别讲解几个,如下图所示:

05|第五课:视图、视图解析器、国际化_第3张图片
ViewResolver实现类简介

3、常见的视图和解析器

常用的视图和解析器是:InternalResourceView、InternalResourceViewResolver。InternalResourceViewResolver把Controller返回的字符串加前缀和后缀,把这个字符串渲染成JSP所对应的页面。InternalResourceView还有一个子类是JstlView,它可以解析Jstl标签,可以实现国际化操作。springMVC解析JSP时会默认使用InteralResourceView,如果发现JSP中包含了jstl语言,则自动转为JstlView。

验证:如果发现JSP中包含了jstl语言,则自动转为JstlView去解析。通过打断点的方式,在InternalResourceViewResolver.class ---> buildView方法中断点查看返回的视图的内容

4、国际化

JstlView可以解析Jstl标签,可以实现国际化操作。

国际化:针对不同地区、不同国家,进行不同的显示。

(1)、具体实现国际化步骤:

a、创建资源文件

基名_语言.properties。这个不管什么国家都可以。

基名_语言_国家.properties。例:base_en_US.properties、i18n_zh_CN.properties。如下图所示:

05|第五课:视图、视图解析器、国际化_第4张图片
资源文件命名规则

注意:“.properties”文件里面的内容都是key-value对,具体内容如例:welcome=欢迎。如果没有在“base_zh_CN.properties”文件中找到,那就去“base.properties”文件寻找。这里的value如果是中文的话,一定要转成ASCII码。

b、配置springmvc.xml,加载资源文件:

ResourceBundleMessageSource会在springMVC响应程序时候介入解析国际化资源文件。并且这个bean的id一定要是“messageSource”值。如下图所示:

05|第五课:视图、视图解析器、国际化_第5张图片
springmvc.xml的配置信息

c、通过jstl使用国际化

使用两个jar包:jstl.jar、standar.jar。

注意:直接通过地址栏访问对应拥有国际化标签的JSP页面是不可以的,它需要通过springMVC的ResourceBundleMessageSource来处理响应处理标签中的国际化标签


例:(国际化)

引入两个jar包:

05|第五课:视图、视图解析器、国际化_第6张图片
引入这两个jar包

资源文件:

05|第五课:视图、视图解析器、国际化_第7张图片
中文和英文的资源文件

注意:如果是中文内容的资源文件,那内容中是中文需要转成ASCII码。

springmvc.xml文件配置:

05|第五课:视图、视图解析器、国际化_第8张图片
代码

注意:这里的id一定要是“messageSource”,通过阅读源代码可以查看到。

请求页面(index.jsp):一定要通过请求的方式来通过springMVC的方式才能走国际化

05|第五课:视图、视图解析器、国际化_第9张图片
请求页面

Controller处理请求:

05|第五课:视图、视图解析器、国际化_第10张图片
处理请求

响应页面(success.jsp):

05|第五课:视图、视图解析器、国际化_第11张图片
响应页面

你可能感兴趣的:(05|第五课:视图、视图解析器、国际化)