[[spring-tld]]
= spring JSP Tag Library


[[spring.tld-intro]]
== Introduction
One of the view technologies you can use with the Spring Framework is Java Server Pages
(JSPs). To help you implement views using Java Server Pages the Spring Framework
provides you with some tags for evaluating errors, setting themes and outputting
internationalized messages.

Please note that the various tags generated by this form tag library are compliant with
the https://www.w3.org/TR/xhtml1/[XHTML-1.0-Strict specification] and attendant
https://www.w3.org/TR/xhtml1/dtds.html#a_dtd_XHTML-1.0-Strict[DTD].

This appendix describes the `spring.tld` tag library.

* <<spring.tld.argument>>
* <<spring.tld.bind>>
* <<spring.tld.escapeBody>>
* <<spring.tld.hasBindErrors>>
* <<spring.tld.htmlEscape>>
* <<spring.tld.message>>
* <<spring.tld.nestedPath>>
* <<spring.tld.param>>
* <<spring.tld.theme>>
* <<spring.tld.transform>>
* <<spring.tld.url>>
* <<spring.tld.eval>>




[[spring.tld.argument]]
== The argument tag

Argument tag based on the JSTL fmt:param tag. The purpose is to support arguments
inside the message and theme tags.

[[spring.tld.argument.table]]
[cols="1,1,1,3"]
.Attributes
|===
| Attribute| Required?| Runtime Expression?| Description

| value
| false
| true
| The value of the argument.
|===



[[spring.tld.bind]]
== The bind tag

Provides BindStatus object for the given bind path. The HTML escaping flag participates
in a page-wide or application-wide setting (i.e. by HtmlEscapeTag or a
"defaultHtmlEscape" context-param in web.xml).

[[spring.tld.bind.table]]
.Attributes
[cols="1,1,1,3"]
|===
| Attribute| Required?| Runtime Expression?| Description

| htmlEscape
| false
| true
| Set HTML escaping for this tag, as boolean value. Overrides the default HTML escaping
  setting for the current page.

| ignoreNestedPath
| false
| true
| Set whether to ignore a nested path, if any. Default is to not ignore.

| path
| true
| true
| The path to the bean or bean property to bind status information for. For instance
  account.name, company.address.zipCode or just employee. The status object will
  exported to the page scope, specifically for this bean or bean property
|===




[[spring.tld.escapeBody]]
== The escapeBody tag

Escapes its enclosed body content, applying HTML escaping and/or JavaScript escaping.
The HTML escaping flag participates in a page-wide or application-wide setting (i.e. by
HtmlEscapeTag or a "defaultHtmlEscape" context-param in web.xml).

[[spring.tld.escapeBody.table]]
.Attributes
[cols="1,1,1,3"]
|===
| Attribute| Required?| Runtime Expression?| Description

| htmlEscape
| false
| true
| Set HTML escaping for this tag, as boolean value. Overrides the default HTML escaping
  setting for the current page.

| javaScriptEscape
| false
| true
| Set JavaScript escaping for this tag, as boolean value. Default is false.
|===




[[spring.tld.eval]]
== The eval tag

Evaluates a Spring expression (SpEL) and either prints the result or assigns it to a
variable.

[[spring.tld.eval.table]]
[cols="1,1,1,3"]
.Attributes
|===
| Attribute| Required?| Runtime Expression?| Description

| expression
| true
| true
| The expression to evaluate.

| htmlEscape
| false
| true
| Set HTML escaping for this tag, as a boolean value. Overrides the default HTML
  escaping setting for the current page.

| javaScriptEscape
| false
| true
| Set JavaScript escaping for this tag, as a boolean value. Default is false.

| scope
| false
| true
| The scope for the var. 'application', 'session', 'request' and 'page' scopes are
  supported. Defaults to page scope. This attribute has no effect unless the var
  attribute is also defined.

| var
| false
| true
| The name of the variable to export the evaluation result to. If not specified the
  evaluation result is converted to a String and written as output.
|===




[[spring.tld.hasBindErrors]]
== The hasBindErrors tag

Provides Errors instance in case of bind errors. The HTML escaping flag participates in
a page-wide or application-wide setting (i.e. by HtmlEscapeTag or a "defaultHtmlEscape"
context-param in web.xml).

[[spring.tld.hasBindErrors.table]]
.Attributes
[cols="1,1,1,3"]
|===
| Attribute| Required?| Runtime Expression?| Description

| htmlEscape
| false
| true
| Set HTML escaping for this tag, as boolean value. Overrides the default HTML escaping
  setting for the current page.

| name
| true
| true
| The name of the bean in the request, that needs to be inspected for errors. If errors
  are available for this bean, they will be bound under the 'errors' key.
|===




[[spring.tld.htmlEscape]]
== The htmlEscape tag

Sets default HTML escape value for the current page. Overrides a "defaultHtmlEscape"
context-param in web.xml, if any.

[[spring.tld.htmlEscape.table]]
.Attributes
[cols="1,1,1,3"]
|===
| Attribute| Required?| Runtime Expression?| Description

| defaultHtmlEscape
| true
| true
| Set the default value for HTML escaping, to be put into the current PageContext.
|===




[[spring.tld.message]]
== The message tag

Retrieves the message with the given code, or text if code isn't resolvable. The HTML
escaping flag participates in a page-wide or application-wide setting (i.e. by
HtmlEscapeTag or a "defaultHtmlEscape" context-param in web.xml).

[[spring.tld.message.table]]
.Attributes
[cols="1,1,1,3"]
|===
| Attribute| Required?| Runtime Expression?| Description

| arguments
| false
| true
| Set optional message arguments for this tag, as a (comma-)delimited String (each
  String argument can contain JSP EL), an Object array (used as argument array), or a
  single Object (used as single argument).

| argumentSeparator
| false
| true
| The separator character to be used for splitting the arguments string value; defaults
  to a 'comma' (',').

| code
| false
| true
| The code (key) to use when looking up the message. If code is not provided, the text
  attribute will be used.

| htmlEscape
| false
| true
| Set HTML escaping for this tag, as boolean value. Overrides the default HTML escaping
  setting for the current page.

| javaScriptEscape
| false
| true
| Set JavaScript escaping for this tag, as boolean value. Default is false.

| message
| false
| true
| A MessageSourceResolvable argument (direct or through JSP EL). Fits nicely when used
  in conjunction with Spring's own validation error classes which all implement the
  MessageSourceResolvable interface. For example, this allows you to iterate over all of
  the errors in a form, passing each error (using a runtime expression) as the value of
  this 'message' attribute, thus effecting the easy display of such error messages.

| scope
| false
| true
| The scope to use when exporting the result to a variable. This attribute is only used
  when var is also set. Possible values are page, request, session and application.

| text
| false
| true
| Default text to output when a message for the given code could not be found. If both
  text and code are not set, the tag will output null.

| var
| false
| true
| The string to use when binding the result to the page, request, session or application
  scope. If not specified, the result gets outputted to the writer (i.e. typically
  directly to the JSP).
|===




[[spring.tld.nestedPath]]
== The nestedPath tag

Sets a nested path to be used by the bind tag's path.

[[spring.tld.nestedPath.table]]
.Attributes
[cols="1,1,1,3"]
|===
| Attribute| Required?| Runtime Expression?| Description

| path
| true
| true
| Set the path that this tag should apply. E.g. 'customer' to allow bind paths like
  'address.street' rather than 'customer.address.street'.
|===




[[spring.tld.param]]
== The param tag

Parameter tag based on the JSTL c:param tag. The sole purpose is to support params
inside the url tag.

[[spring.tld.param.table]]
[cols="1,1,1,3"]
.Attributes
|===
| Attribute| Required?| Runtime Expression?| Description

| name
| true
| true
| The name of the parameter.

| value
| false
| true
| The value of the parameter.
|===



[[spring.tld.theme]]
== The theme tag

Retrieves the theme message with the given code, or text if code isn't resolvable. The
HTML escaping flag participates in a page-wide or application-wide setting (i.e. by
HtmlEscapeTag or a "defaultHtmlEscape" context-param in web.xml).

[[spring.tld.theme.table]]
.Attributes
[cols="1,1,1,3"]
|===
| Attribute| Required?| Runtime Expression?| Description

| arguments
| false
| true
| Set optional message arguments for this tag, as a (comma-)delimited String (each
  String argument can contain JSP EL), an Object array (used as argument array), or a
  single Object (used as single argument).

| argumentSeparator
| false
| true
| The separator character to be used for splitting the arguments string value; defaults
  to a 'comma' (',').

| code
| false
| true
| The code (key) to use when looking up the message. If code is not provided, the text
  attribute will be used.

| htmlEscape
| false
| true
| Set HTML escaping for this tag, as boolean value. Overrides the default HTML escaping
  setting for the current page.

| javaScriptEscape
| false
| true
| Set JavaScript escaping for this tag, as boolean value. Default is false.

| message
| false
| true
| A MessageSourceResolvable argument (direct or through JSP EL).

| scope
| false
| true
| The scope to use when exporting the result to a variable. This attribute is only used
  when var is also set. Possible values are page, request, session and application.

| text
| false
| true
| Default text to output when a message for the given code could not be found. If both
  text and code are not set, the tag will output null.

| var
| false
| true
| The string to use when binding the result to the page, request, session or application
  scope. If not specified, the result gets outputted to the writer (i.e. typically
  directly to the JSP).
|===




[[spring.tld.transform]]
== The transform tag

Provides transformation of variables to Strings, using an appropriate custom
PropertyEditor from BindTag (can only be used inside BindTag). The HTML escaping flag
participates in a page-wide or application-wide setting (i.e. by HtmlEscapeTag or a
'defaultHtmlEscape' context-param in web.xml).

[[spring.tld.transform.table]]
.Attributes
[cols="1,1,1,3"]
|===
| Attribute| Required?| Runtime Expression?| Description

| htmlEscape
| false
| true
| Set HTML escaping for this tag, as boolean value. Overrides the default HTML escaping
  setting for the current page.

| scope
| false
| true
| The scope to use when exported the result to a variable. This attribute is only used
  when var is also set. Possible values are page, request, session and application.

| value
| true
| true
| The value to transform. This is the actual object you want to have transformed (for
  instance a Date). Using the PropertyEditor that is currently in use by the
  'spring:bind' tag.

| var
| false
| true
| The string to use when binding the result to the page, request, session or application
  scope. If not specified, the result gets outputted to the writer (i.e. typically
  directly to the JSP).
|===




[[spring.tld.url]]
== The url tag

Creates URLs with support for URI template variables, HTML/XML escaping, and Javascript
escaping. Modeled after the JSTL c:url tag with backwards compatibility in mind.

[[spring.tld.url.table]]
.Attributes
[cols="1,1,1,3"]
|===
| Attribute| Required?| Runtime Expression?| Description

| value
| true
| true
| The URL to build. This value can include template {placeholders} that are replaced
  with the URL encoded value of the named parameter. Parameters must be defined using
  the param tag inside the body of this tag.

| context
| false
| true
| Specifies a remote application context path. The default is the current application
  context path.

| var
| false
| true
| The name of the variable to export the URL value to. If not specified the URL is
  written as output.

| scope
| false
| true
| The scope for the var. 'application', 'session', 'request' and 'page' scopes are
  supported. Defaults to page scope. This attribute has no effect unless the var
  attribute is also defined.

| htmlEscape
| false
| true
| Set HTML escaping for this tag, as a boolean value. Overrides the default HTML
  escaping setting for the current page.

| javaScriptEscape
| false
| true
| Set JavaScript escaping for this tag, as a boolean value. Default is false.
|===
