43. SpringJSP 标签库

43.1 Introduction

可以与 Spring 框架一起使用的视图技术之一是 Java Server Pages(JSP)。为了帮助您使用 Java Server Pages 实现视图,Spring 框架为您提供了一些用于评估错误,设置主题和输出国际化消息的标签。

请注意,此表单标签库生成的各种标签均符合XHTML-1.0-Strict specification和服务员DTD的要求。

本附录描述spring.tld标签库。

43.2 参数标记

基于 JSTL fmt:param 标记的参数标记。目的是支持 message 和 theme 标签内的参数。

表 43.1. 属性

Attribute Required? Runtime Expression? Description
value false true 参数的值。

43.3 绑定标签

为给定的绑定路径提供 BindStatus 对象。 HTML 转义标志会参与整个页面或整个应用程序的设置(即通过 HtmlEscapeTag 或 web.xml 中的“ defaultHtmlEscape”上下文参数)。

表 43.2. 属性

Attribute Required? Runtime Expression? Description
htmlEscape false true 将此标签的 HTML 转义设置为布尔值。覆盖当前页面的默认 HTML 转义设置。
ignoreNestedPath false true 设置是否忽略嵌套路径(如果有)。默认为不忽略。
path true true 绑定状态信息的 bean 或 bean 属性的路径。例如 account.name,company.address.zipCode 或仅员工。状态对象将导出到页面范围,专门为此 bean 或 bean 属性

43.4 escapeBody 标签

使用 HTML 转义和/或 JavaScript 转义来转义其封闭的正文内容。 HTML 转义标志会参与整个页面或整个应用程序的设置(即通过 HtmlEscapeTag 或 web.xml 中的“ defaultHtmlEscape”上下文参数)。

表 43.3. 属性

Attribute Required? Runtime Expression? Description
htmlEscape false true 将此标签的 HTML 转义设置为布尔值。覆盖当前页面的默认 HTML 转义设置。
javaScriptEscape false true 将此 JavaScript 的转义字符设置为布尔值。默认为 false。

43.5 eval 标签

计算一个 Spring 表达式(SpEL),然后打印结果或将其分配给变量。

表 43.4. 属性

Attribute Required? Runtime Expression? Description
expression true true 要评估的表达式。
htmlEscape false true 将此标签的 HTML 转义设置为布尔值。覆盖当前页面的默认 HTML 转义设置。
javaScriptEscape false true 将此 JavaScript 的转义字符设置为布尔值。默认为 false。
scope false true var 的范围。支持“应用程序”,“会话”,“请求”和“页面”范围。默认为页面范围。除非还定义了 var 属性,否则此属性无效。
var false true 要将评估结果导出到的变量的名称。如果未指定,则将评估结果转换为字符串并作为输出写入。

43.6 hasBindErrors 标记

如果发生绑定错误,则提供 Errors 实例。 HTML 转义标志会参与整个页面或整个应用程序的设置(即通过 HtmlEscapeTag 或 web.xml 中的“ defaultHtmlEscape”上下文参数)。

表 43.5. 属性

Attribute Required? Runtime Expression? Description
htmlEscape false true 将此标签的 HTML 转义设置为布尔值。覆盖当前页面的默认 HTML 转义设置。
name true true 请求中需要检查错误的 Bean 的名称。如果该 bean 有错误,将在'errors'键下绑定它们。

43.7 htmlEscape 标记

设置当前页面的默认 HTML 转义值。覆盖 web.xml 中的“ defaultHtmlEscape”上下文参数(如果有)。

表 43.6. 属性

Attribute Required? Runtime Expression? Description
defaultHtmlEscape true true 设置 HTML 转义的默认值,将其放入当前的 PageContext 中。

43.8 消息标签

使用给定的代码检索消息,如果代码不可解析则返回文本。 HTML 转义标志会参与整个页面或整个应用程序的设置(即通过 HtmlEscapeTag 或 web.xml 中的“ defaultHtmlEscape”上下文参数)。

表 43.7. 属性

Attribute Required? Runtime Expression? Description
arguments false true 为此标签设置可选的消息参数,以(逗号)分隔的字符串(每个 String 参数可以包含 JSP EL),对象数组(用作参数数组)或单个对象(用作单个参数)。
argumentSeparator false true 用于分隔参数字符串值的分隔符;默认为'逗号'(',')。
code false true 查找消息时使用的代码(密钥)。如果未提供代码,则将使用 text 属性。
htmlEscape false true 将此标签的 HTML 转义设置为布尔值。覆盖当前页面的默认 HTML 转义设置。
javaScriptEscape false true 将此 JavaScript 的转义字符设置为布尔值。默认为 false。
message false true 一个 MessageSourceResolvable 参数(直接或通过 JSP EL)。与 Spring 自己的验证错误类配合使用非常合适,这些错误类都实现了 MessageSourceResolvable 接口。例如,这允许您遍历表单中的所有错误,将每个错误(使用运行时表达式)作为此“消息”属性的值传递,从而实现了此类错误消息的轻松显示。
scope false true 将结果导出到变量时使用的范围。仅当还设置了 var 时,才使用此属性。可能的值为页面,请求,会话和应用程序。
text false true 当找不到给定代码的消息时输出的默认文本。如果未同时设置文本和代码,则标记将输出 null。
var false true 将结果绑定到页面,请求,会话或应用程序范围时使用的字符串。如果未指定,则将结果输出到编写器(即通常直接输出到 JSP)。

43.9 nestedPath 标记

设置绑定标记的路径要使用的嵌套路径。

表 43.8. 属性

Attribute Required? Runtime Expression? Description
path true true 设置此标签应应用的路径。例如。 'customer'允许绑定路径,例如'address.street',而不是'customer.address.street'。

43.10 param 标签

基于 JSTL c:param 标记的参数标记。唯一的目的是在 url 标记内支持参数。

表 43.9. 属性

Attribute Required? Runtime Expression? Description
name true true 参数的名称。
value false true 参数的值。

43.11 主题标签

使用给定的代码检索主题消息,如果代码不可解析,则检索文本。 HTML 转义标志会参与整个页面或整个应用程序的设置(即通过 HtmlEscapeTag 或 web.xml 中的“ defaultHtmlEscape”上下文参数)。

表 43.10. 属性

Attribute Required? Runtime Expression? Description
arguments false true 为此标签设置可选的消息参数,以(逗号)分隔的字符串(每个 String 参数可以包含 JSP EL),对象数组(用作参数数组)或单个对象(用作单个参数)。
argumentSeparator false true 用于分隔参数字符串值的分隔符;默认为'逗号'(',')。
code false true 查找消息时使用的代码(密钥)。如果未提供代码,则将使用 text 属性。
htmlEscape false true 将此标签的 HTML 转义设置为布尔值。覆盖当前页面的默认 HTML 转义设置。
javaScriptEscape false true 将此 JavaScript 的转义字符设置为布尔值。默认为 false。
message false true 一个 MessageSourceResolvable 参数(直接或通过 JSP EL)。
scope false true 将结果导出到变量时使用的范围。仅当还设置了 var 时,才使用此属性。可能的值为页面,请求,会话和应用程序。
text false true 当找不到给定代码的消息时输出的默认文本。如果未同时设置文本和代码,则标记将输出 null。
var false true 将结果绑定到页面,请求,会话或应用程序范围时使用的字符串。如果未指定,则将结果输出到编写器(即通常直接输出到 JSP)。

43.12 转换标签

使用来自 BindTag 的适当的自定义 PropertyEditor 将变量转换为字符串(只能在 BindTag 内部使用)。 HTML 转义标志会参与整个页面或整个应用程序的设置(即通过 HtmlEscapeTag 或 web.xml 中的“ defaultHtmlEscape”上下文参数)。

表 43.11. 属性

Attribute Required? Runtime Expression? Description
htmlEscape false true 将此标签的 HTML 转义设置为布尔值。覆盖当前页面的默认 HTML 转义设置。
scope false true 将结果导出到变量时使用的范围。仅当还设置了 var 时,才使用此属性。可能的值为页面,请求,会话和应用程序。
value true true 要转换的值。这是您要转换的实际对象(例如,日期)。使用“ spring:bind”标签当前正在使用的 PropertyEditor。
var false true 将结果绑定到页面,请求,会话或应用程序范围时使用的字符串。如果未指定,则将结果输出到编写器(即通常直接输出到 JSP)。

43.13 网址标签

创建支持 URI 模板变量,HTML/XML 转义和 Javascript 转义的 URL。以 JSTL c:url 标记为模型,并考虑了向后兼容性。

表 43.12. 属性

Attribute Required? Runtime Expression? Description
value true true 要构建的 URL。该值可以包括模板\ {},该模板已被命名参数的 URL 编码值替换。必须使用此标签主体内的 param 标签定义参数。
context false true 指定远程应用程序上下文路径。默认值为当前应用程序上下文路径。
var false true 要将 URL 值导出到的变量的名称。如果未指定,则将 URL 写入输出。
scope false true var 的范围。支持“应用程序”,“会话”,“请求”和“页面”范围。默认为页面范围。除非还定义了 var 属性,否则此属性无效。
htmlEscape false true 将此标签的 HTML 转义设置为布尔值。覆盖当前页面的默认 HTML 转义设置。
javaScriptEscape false true 将此 JavaScript 的转义字符设置为布尔值。默认为 false。
上一章 首页 下一章