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>