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. 属性

AttributeRequired?Runtime Expression?Description
valuefalsetrue参数的值。

43.3 绑定标签

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

表 43.2. 属性

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

43.4 escapeBody 标签

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

表 43.3. 属性

AttributeRequired?Runtime Expression?Description
htmlEscapefalsetrue将此标签的 HTML 转义设置为布尔值。覆盖当前页面的默认 HTML 转义设置。
javaScriptEscapefalsetrue将此 JavaScript 的转义字符设置为布尔值。默认为 false。

43.5 eval 标签

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

表 43.4. 属性

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

43.6 hasBindErrors 标记

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

表 43.5. 属性

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

43.7 htmlEscape 标记

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

表 43.6. 属性

AttributeRequired?Runtime Expression?Description
defaultHtmlEscapetruetrue设置 HTML 转义的默认值,将其放入当前的 PageContext 中。

43.8 消息标签

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

表 43.7. 属性

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

43.9 nestedPath 标记

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

表 43.8. 属性

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

43.10 param 标签

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

表 43.9. 属性

AttributeRequired?Runtime Expression?Description
nametruetrue参数的名称。
valuefalsetrue参数的值。

43.11 主题标签

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

表 43.10. 属性

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

43.12 转换标签

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

表 43.11. 属性

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

43.13 网址标签

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

表 43.12. 属性

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