渲染Web视图——使用Spring的通用标签库

使用Spring的通用标签库

  • 使用Spring的通用标签库,必须要在页面上对其进行声明
<%@ taglib prefix="s" uri="http://www.springframework.org/tags" %>

展现国际化信息

  • 对于渲染文本来说,是很好的方案,文本能够位于一个或多个属性文件中。借助,可以将硬编码的欢迎信息:

Welcome to Spittr

替换为如下的形式

  • 将会根据key为spittr.welcom的信息源渲染文本。因此需要配置一个这样的信息源。Spring有多个信息源的类,它们都实现了MessageSource接口。
    (1)更为常见和有用的是ResourceBundleMessageSoource。它会从一个属性文件中加载信息,这个属性文件的名称是根据基础名称(base name)衍生而来的。如下的@Bean方法配置了ResourceBundleMessageSoource:
    @Bean
    public MessageSource messageSource() {
        ResourceBundleMessageSource messageSource =
                new ResourceBundleMessageSource();
        messageSource.setBasename("message");
        return messageSource;
    }

在这个bean声明中,核心在与设置basename属性,其将会在根路径的 属性文件中解析信息,这些属性文件的名称是根据这个basename得到的
(2)另外的可选方案是使用ReloadableResourceBundleMessageSource ,其工作方式与ResourceBundleMessageSource非常相似,但是它能够重新加载信息属性,不必重新编译或重启应用。

@Bean
    public MessageSource messageSource() {
        ReloadableResourceBundleMessageSource messageSource =
                new ReloadableResourceBundleMessageSource();
        messageSource.setBasename("file:///etc/spittr/message");
        messageSource.setCacheSeconds(10);
        return messageSource;
    }

关键区别在于basename属性设置为在应用的外部查找(而不是像ResourceBundleMessageSource那样在累路径下查找)。

  • message.properties文件的配置,以英语为例
spittr.Welcom=Welcom to Spittr!

创建URL

  • 的主要任务就是创建URL,然后将其复制给一个变量或者渲染到响应中。按照其最简单的形式, 会接受一个相对于上下文的URL,并在渲染的时候,预先添加上Servlet上下文路径。例如考虑如下 的基本用法:
 ">Register

如果应用的上下文名是spittr,那么在响应中会渲染如下的HTML:

Register
  • 还可以使用创建URL,并将其赋值给一个变量供模版在稍后使用:


默认情况下,URL是在页面作用于内创建的。但是可以通过scope属性,让 在应用作用域内、会话作用域内或者请求作用域内创建URL:



  • 在URL上添加参数,可以使用标签:
 
        
        
 

使用标签还可以创建带有路径参数的URL,时期具有路径变量的占位符:


        
 

当value属性中的占位符匹配中指定的参数时,这个参数将会插入到占位符的位置中。如果参数无法匹配value中的任何占位符,那么这个参数将会作为查询参数。

  • 还可以解决URL的转移需求。
    (1)可以通过设置htmlEscape属性为true,将渲染得到的URL内容展现在Web页面上(而不是作为超链接)。

        
        

(2)可以将javaScriptEscape属性为true,便可以在Java代码中使用URL:

 
      
      
 
 

转义内容

  • 标签是一个通用的转义标签。通过设置htmlEscape属性为true,可以在页面上展现一个HTML代码片段;通过设置javaScript属性为true,可以实现JavaScript的的转义。

你可能感兴趣的:(渲染Web视图——使用Spring的通用标签库)