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>
转义为到<h1>Hello</h1>