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

2017-04-04  本文已影响0人  鉴闻俗说

使用Spring的通用标签库

<%@ taglib prefix="s" uri="http://www.springframework.org/tags" %>

展现国际化信息

<h1>Welcome to Spittr</h1>

替换为如下的形式

<h1><s:message code="spittr.welcom" /></h1>  
    @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那样在累路径下查找)。

spittr.Welcom=Welcom to Spittr!

创建URL

 <a href="<s:url href="/spitter/register"/>">Register</a>

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

<a href="/spittr/spitter/register">Register</a>
<s:url value="/spitter/register" var="registerUrl" />
<a href="${registerUrl}"></a>

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

<s:url value="/spitter/register" var="registerUrl"  scope="request"/>
<a href="${registerUrl}"></a>
 <s:url value="/spittles" var="spittlesUrl">
        <s:param name="max" value="60" />
        <s:param name="count" value="20" />
 </s:url>

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

<s:url value="/spittles/{userName}" var="spittlesUrl">
        <s:param name="userName" value="jbauer" />
 </s:url>

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

<s:url value="/spittles" htmlEscape="true">
        <s:param name="max" value="60" />
        <s:param name="count" value="20" />
</s:url>

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

 <s:url value="/spittles" var="spittlesJSUrl" javaScriptEscape="true">
      <s:param name="max" value="60" />
      <s:param name="count" value="20" />
 </s:url>
 <script>
      var spittlesUrl = "${spittlesJSUrl}"
 </script>

转义内容

上一篇 下一篇

猜你喜欢

热点阅读