Spring的jsp标签库

1,主要有两个

一个用于渲染HTML表单标签, 这些标签会绑定model中的某个属性

另一个包换了一些工具类标签

2,将表单绑定到模型上

包含了14个标签,海报一个人为用户展现错误的标签,它会将错误信息渲染到最终的HTML中

为了使用表单绑定库,需要在jsp页面中声明:

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

3,通用标签库

使用前需要在jsp页面中声明:

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

4,展现国际化信息

通常使用<s:message/>如:

<h1><s:message code="spittr.welcome" /></h1>

Spring有多个信息源的类,他们都实现了MessageSource接口,在这些类中,更为常见和有用的是ResourceBundleMessageSource,它会从一个属性文件

中加载信息,如下

 

 

@Bean
public MessageSource messageSource() {
  ResourceBundleMessageSource messageSource =
          new ResourceBundleMessageSource();
  messageSource.setBasename("messages");
  return messageSource;
}

在这里,核心在于设置basename属性,可以设置为任意你喜欢的

另外的可选方案是ReloadableResourceBundleMessageSource,但是他能重新加载信息属性。而不必重新编译或重新启用,如下

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

 两者的关键区别在于前者是在类路径下查找,后者为应用的外部查找

 5,创建URL

<s:url>,主要任务是创建URL,然后将其赋值给一个变量,或渲染到响应中

默认情况下,URL是在页面作用域内创建的,但是通过设置scope属性。我们可以让他在应用作用域内,会话作用域或域内作用域

如<s:url href="/spitter/register" var="registerUrl" scope="request" />

如果希望添加参数的话,可以使用<s:param>,如

<s:url href="/spittles" var="spittlesUrl">
  <s:param name="max" value="60" />
  <s:param name="count" value="20" />
</s:url>

<s:escapeBody>标签专门用来转义内容,而不是转义标签,是一个通用的转义标签,支持HTML和JavaScript转义

<s:escapeBody htmlEscape="true">
<h1>Hello</h1>
</s:escapeBody>

<s:escapeBody javaScriptEscape="true">
<h1>Hello</h1>
</s:escapeBody>

转义为到&lt;h1&gt;Hello&lt;/h1&gt;

 

posted @ 2018-11-20 15:49  墨冰心  阅读(1472)  评论(0编辑  收藏  举报