Typo fixes and formatting
This commit is contained in:
parent
85332c7a49
commit
462d047f72
|
@ -285,20 +285,20 @@ The parameters to any of the above macros have consistent meanings:
|
||||||
and bound to the command object. Map objects stored against the keys are the labels
|
and bound to the command object. Map objects stored against the keys are the labels
|
||||||
displayed on the form to the user and may be different from the corresponding values
|
displayed on the form to the user and may be different from the corresponding values
|
||||||
posted back by the form. Usually, such a map is supplied as reference data by the
|
posted back by the form. Usually, such a map is supplied as reference data by the
|
||||||
controller. You can use any `Map` implementation, depending on required behavior. For
|
controller. You can use any `Map` implementation, depending on required behavior.
|
||||||
strictly sorted maps, you can use a `SortedMap` (such as a `TreeMap`) with a suitable `Comparator`
|
For strictly sorted maps, you can use a `SortedMap` (such as a `TreeMap`) with a
|
||||||
and, for arbitrary Maps that should return values in insertion order, use a
|
suitable `Comparator` and, for arbitrary Maps that should return values in insertion
|
||||||
`LinkedHashMap` or a `LinkedMap` from `commons-collections`.
|
order, use a `LinkedHashMap` or a `LinkedMap` from `commons-collections`.
|
||||||
* `separator`: Where multiple options are available as discreet elements (radio buttons or
|
* `separator`: Where multiple options are available as discreet elements (radio buttons
|
||||||
checkboxes), the sequence of characters used to separate each one in the list (such as
|
or checkboxes), the sequence of characters used to separate each one in the list
|
||||||
`<br>`).
|
(such as `<br>`).
|
||||||
* `attributes`: An additional string of arbitrary tags or text to be included within the
|
* `attributes`: An additional string of arbitrary tags or text to be included within
|
||||||
HTML tag itself. This string is echoed literally by the macro. For example, in a
|
the HTML tag itself. This string is echoed literally by the macro. For example, in a
|
||||||
`textarea` field, you may supply attributes (such as 'rows="5" cols="60"'), or you could pass
|
`textarea` field, you may supply attributes (such as 'rows="5" cols="60"'), or you
|
||||||
style information such as 'style="border:1px solid silver"'.
|
could pass style information such as 'style="border:1px solid silver"'.
|
||||||
* `classOrStyle`: For the `showErrors` macro, the name of the CSS class that the `span` element
|
* `classOrStyle`: For the `showErrors` macro, the name of the CSS class that the `span`
|
||||||
that wraps each error uses. If no information is supplied (or the value is empty),
|
element that wraps each error uses. If no information is supplied (or the value is
|
||||||
the errors are wrapped in `<b></b>` tags.
|
empty), the errors are wrapped in `<b></b>` tags.
|
||||||
|
|
||||||
The following sections outline examples of the macros (some in FTL and some in VTL). Where usage
|
The following sections outline examples of the macros (some in FTL and some in VTL). Where usage
|
||||||
differences exist between the two languages, they are explained in the notes.
|
differences exist between the two languages, they are explained in the notes.
|
||||||
|
@ -799,7 +799,8 @@ When developing with JSPs, you can declare a `InternalResourceViewResolver` or a
|
||||||
|
|
||||||
`ResourceBundleViewResolver` relies on a properties file to define the view names
|
`ResourceBundleViewResolver` relies on a properties file to define the view names
|
||||||
mapped to a class and a URL. With a `ResourceBundleViewResolver`, you
|
mapped to a class and a URL. With a `ResourceBundleViewResolver`, you
|
||||||
can mix different types of views byusing only one resolver, as the following example shows:
|
can mix different types of views by using only one resolver, as the following example
|
||||||
|
shows:
|
||||||
|
|
||||||
====
|
====
|
||||||
[source,xml,indent=0]
|
[source,xml,indent=0]
|
||||||
|
@ -810,7 +811,7 @@ can mix different types of views byusing only one resolver, as the following exa
|
||||||
<property name="basename" value="views"/>
|
<property name="basename" value="views"/>
|
||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
# And a sample properties file is uses (views.properties in WEB-INF/classes):
|
# And a sample properties file is used (views.properties in WEB-INF/classes):
|
||||||
welcome.(class)=org.springframework.web.servlet.view.JstlView
|
welcome.(class)=org.springframework.web.servlet.view.JstlView
|
||||||
welcome.url=/WEB-INF/jsp/welcome.jsp
|
welcome.url=/WEB-INF/jsp/welcome.jsp
|
||||||
|
|
||||||
|
@ -818,9 +819,9 @@ can mix different types of views byusing only one resolver, as the following exa
|
||||||
productList.url=/WEB-INF/jsp/productlist.jsp
|
productList.url=/WEB-INF/jsp/productlist.jsp
|
||||||
----
|
----
|
||||||
|
|
||||||
`InternalResourceBundleViewResolver` can also be used for JSPs. As a best practice, we
|
`InternalResourceViewResolver` can also be used for JSPs. As a best practice, we strongly
|
||||||
strongly encourage placing your JSP files in a directory under the `'WEB-INF'`
|
encourage placing your JSP files in a directory under the `'WEB-INF'` directory so there
|
||||||
directory so there can be no direct access by clients.
|
can be no direct access by clients.
|
||||||
|
|
||||||
[source,xml,indent=0]
|
[source,xml,indent=0]
|
||||||
[subs="verbatim,quotes"]
|
[subs="verbatim,quotes"]
|
||||||
|
@ -838,7 +839,7 @@ directory so there can be no direct access by clients.
|
||||||
[[mvc-view-jsp-jstl]]
|
[[mvc-view-jsp-jstl]]
|
||||||
=== JSPs versus JSTL
|
=== JSPs versus JSTL
|
||||||
|
|
||||||
When using the Java Standard Tag Library you must use a special view class, the
|
When using the JSP Standard Tag Library (JSTL) you must use a special view class, the
|
||||||
`JstlView`, as JSTL needs some preparation before things such as the I18N features can
|
`JstlView`, as JSTL needs some preparation before things such as the I18N features can
|
||||||
work.
|
work.
|
||||||
|
|
||||||
|
@ -1612,7 +1613,7 @@ or see the tag library description.
|
||||||
A key principle of REST is the use of the "`Uniform Interface`". This means that all
|
A key principle of REST is the use of the "`Uniform Interface`". This means that all
|
||||||
resources (URLs) can be manipulated by using the same four HTTP methods: GET, PUT, POST,
|
resources (URLs) can be manipulated by using the same four HTTP methods: GET, PUT, POST,
|
||||||
and DELETE. For each method, the HTTP specification defines the exact semantics. For
|
and DELETE. For each method, the HTTP specification defines the exact semantics. For
|
||||||
instance, a GET should always be a safe operation, meaning that is has no side effects,
|
instance, a GET should always be a safe operation, meaning that it has no side effects,
|
||||||
and a PUT or DELETE should be idempotent, meaning that you can repeat these operations
|
and a PUT or DELETE should be idempotent, meaning that you can repeat these operations
|
||||||
over and over again, but the end result should be the same. While HTTP defines these
|
over and over again, but the end result should be the same. While HTTP defines these
|
||||||
four methods, HTML only supports two: GET and POST. Fortunately, there are two possible
|
four methods, HTML only supports two: GET and POST. Fortunately, there are two possible
|
||||||
|
@ -1625,8 +1626,7 @@ with a hidden `method` parameter is converted into the corresponding HTTP method
|
||||||
request.
|
request.
|
||||||
|
|
||||||
To support HTTP method conversion, the Spring MVC form tag was updated to support setting
|
To support HTTP method conversion, the Spring MVC form tag was updated to support setting
|
||||||
the HTTP method. For example, the following snippet comes from the Pet Clinic
|
the HTTP method. For example, the following snippet comes from the Pet Clinic sample:
|
||||||
sample:
|
|
||||||
|
|
||||||
====
|
====
|
||||||
[source,xml,indent=0]
|
[source,xml,indent=0]
|
||||||
|
@ -1638,8 +1638,8 @@ sample:
|
||||||
----
|
----
|
||||||
====
|
====
|
||||||
|
|
||||||
The preceding example perform an HTTP POST, with the "`real`" DELETE method hidden behind a
|
The preceding example performs an HTTP POST, with the "`real`" DELETE method hidden behind
|
||||||
request parameter. It is picked up by the `HiddenHttpMethodFilter`, which is defined in
|
a request parameter. It is picked up by the `HiddenHttpMethodFilter`, which is defined in
|
||||||
web.xml, as the following example shows:
|
web.xml, as the following example shows:
|
||||||
|
|
||||||
====
|
====
|
||||||
|
@ -1833,7 +1833,7 @@ implementations. See the Tiles documentation for details on how to use
|
||||||
You can specify `SimpleSpringPreparerFactory` to autowire `ViewPreparer` instances based on
|
You can specify `SimpleSpringPreparerFactory` to autowire `ViewPreparer` instances based on
|
||||||
specified preparer classes, applying Spring's container callbacks as well as applying
|
specified preparer classes, applying Spring's container callbacks as well as applying
|
||||||
configured Spring BeanPostProcessors. If Spring's context-wide annotation configuration has
|
configured Spring BeanPostProcessors. If Spring's context-wide annotation configuration has
|
||||||
been activated, annotations in `ViewPreparer` classes aree automatically detected and
|
been activated, annotations in `ViewPreparer` classes are automatically detected and
|
||||||
applied. Note that this expects preparer classes in the Tiles definition files, as
|
applied. Note that this expects preparer classes in the Tiles definition files, as
|
||||||
the default `PreparerFactory` does.
|
the default `PreparerFactory` does.
|
||||||
|
|
||||||
|
@ -1843,7 +1843,7 @@ application context. The full bean creation process is in the control of the Spr
|
||||||
application context in this case, allowing for the use of explicit dependency injection
|
application context in this case, allowing for the use of explicit dependency injection
|
||||||
configuration, scoped beans, and so on. Note that you need to define one Spring bean definition
|
configuration, scoped beans, and so on. Note that you need to define one Spring bean definition
|
||||||
for each preparer name (as used in your Tiles definitions). The following example shows
|
for each preparer name (as used in your Tiles definitions). The following example shows
|
||||||
how to define a set a `SpringBeanPreparerFactory` property on a `TilesConfigurer` bean:
|
how to define a `SpringBeanPreparerFactory` property on a `TilesConfigurer` bean:
|
||||||
|
|
||||||
====
|
====
|
||||||
[source,xml,indent=0]
|
[source,xml,indent=0]
|
||||||
|
@ -1911,7 +1911,7 @@ Similar requirements apply for implementing `AbstractRssFeedView`, as the follow
|
||||||
[source,java,indent=0]
|
[source,java,indent=0]
|
||||||
[subs="verbatim,quotes"]
|
[subs="verbatim,quotes"]
|
||||||
----
|
----
|
||||||
public class SampleContentAtomView extends AbstractRssFeedView {
|
public class SampleContentRssView extends AbstractRssFeedView {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void buildFeedMetadata(Map<String, Object> model,
|
protected void buildFeedMetadata(Map<String, Object> model,
|
||||||
|
@ -1956,13 +1956,13 @@ dynamically from the model data. The document is the view and is streamed from t
|
||||||
server with the correct content type, to (hopefully) enable the client PC to run their
|
server with the correct content type, to (hopefully) enable the client PC to run their
|
||||||
spreadsheet or PDF viewer application in response.
|
spreadsheet or PDF viewer application in response.
|
||||||
|
|
||||||
In order to use Excel views, you need to add the Apache POI library to your classpath,
|
In order to use Excel views, you need to add the Apache POI library to your classpath.
|
||||||
For PDF generation, you need to add (preferably) the OpenPDF library.
|
For PDF generation, you need to add (preferably) the OpenPDF library.
|
||||||
|
|
||||||
NOTE: You should use the latest versions of the underlying document-generation libraries, if possible.
|
NOTE: You should use the latest versions of the underlying document-generation libraries,
|
||||||
In particular, we strongly recommend OpenPDF (for example, OpenPDF 1.0.5) instead of the
|
if possible. In particular, we strongly recommend OpenPDF (for example, OpenPDF 1.0.5)
|
||||||
outdated original iText 2.1.7, since OpenPDF is actively maintained and fixes an important
|
instead of the outdated original iText 2.1.7, since OpenPDF is actively maintained and
|
||||||
vulnerability for untrusted PDF content.
|
fixes an important vulnerability for untrusted PDF content.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -2027,9 +2027,9 @@ The `MappingJackson2JsonView` uses the Jackson library's `ObjectMapper` to rende
|
||||||
content as JSON. By default, the entire contents of the model map (with the exception of
|
content as JSON. By default, the entire contents of the model map (with the exception of
|
||||||
framework-specific classes) are encoded as JSON. For cases where the contents of the
|
framework-specific classes) are encoded as JSON. For cases where the contents of the
|
||||||
map need to be filtered, you can specify a specific set of model attributes to encode
|
map need to be filtered, you can specify a specific set of model attributes to encode
|
||||||
by using the `modelKeys` property. You can also use the `extractValueFromSingleKeyModel` property
|
by using the `modelKeys` property. You can also use the `extractValueFromSingleKeyModel`
|
||||||
to have the value in single-key models extracted and serialized directly rather than
|
property to have the value in single-key models extracted and serialized directly rather
|
||||||
as a map of model attributes.
|
than as a map of model attributes.
|
||||||
|
|
||||||
You can customize JSON mapping as needed by using Jackson's provided
|
You can customize JSON mapping as needed by using Jackson's provided
|
||||||
annotations. When you need further control, you can inject a custom `ObjectMapper`
|
annotations. When you need further control, you can inject a custom `ObjectMapper`
|
||||||
|
@ -2044,9 +2044,9 @@ serializers and deserializers for specific types.
|
||||||
|
|
||||||
`MappingJackson2XmlView` uses the
|
`MappingJackson2XmlView` uses the
|
||||||
https://github.com/FasterXML/jackson-dataformat-xml[Jackson XML extension's] `XmlMapper`
|
https://github.com/FasterXML/jackson-dataformat-xml[Jackson XML extension's] `XmlMapper`
|
||||||
to render the response content as XML. If the model contains multiples entries, you should explicitly set the
|
to render the response content as XML. If the model contains multiple entries, you should
|
||||||
object to be serialized by using the `modelKey` bean property.
|
explicitly set the object to be serialized by using the `modelKey` bean property. If the
|
||||||
If the model contains a single entry, it is serialized automatically.
|
model contains a single entry, it is serialized automatically.
|
||||||
|
|
||||||
You can customized XML mapping as needed by using JAXB or Jackson's provided
|
You can customized XML mapping as needed by using JAXB or Jackson's provided
|
||||||
annotations. When you need further control, you can inject a custom `XmlMapper`
|
annotations. When you need further control, you can inject a custom `XmlMapper`
|
||||||
|
@ -2060,12 +2060,11 @@ you need to provide serializers and deserializers for specific types.
|
||||||
== XML Marshalling
|
== XML Marshalling
|
||||||
|
|
||||||
The `MarshallingView` uses an XML `Marshaller` (defined in the `org.springframework.oxm`
|
The `MarshallingView` uses an XML `Marshaller` (defined in the `org.springframework.oxm`
|
||||||
package) to render the response content as XML. You can explicitly set the object to be marshalled
|
package) to render the response content as XML. You can explicitly set the object to be
|
||||||
by using a `MarshallingView` instance's `modelKey` bean property. Alternatively, the view
|
marshalled by using a `MarshallingView` instance's `modelKey` bean property. Alternatively,
|
||||||
iterates over all model properties and marshals the first type that is supported
|
the view iterates over all model properties and marshals the first type that is supported
|
||||||
by the `Marshaller`. For more information on the functionality in the
|
by the `Marshaller`. For more information on the functionality in the
|
||||||
`org.springframework.oxm` package, see
|
`org.springframework.oxm` package, see <<data-access.adoc#oxm,Marshalling XML using O/X Mappers>>.
|
||||||
<<data-access.adoc#oxm,Marshalling XML using O/X Mappers>>.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -2491,11 +2491,11 @@ Spring MVC has two main abstractions in support of flash attributes. `FlashMap`
|
||||||
to hold flash attributes, while `FlashMapManager` is used to store, retrieve, and manage
|
to hold flash attributes, while `FlashMapManager` is used to store, retrieve, and manage
|
||||||
`FlashMap` instances.
|
`FlashMap` instances.
|
||||||
|
|
||||||
Flash attribute support is always "`on`" and does not need to enabled explicitly. However,
|
Flash attribute support is always "`on`" and does not need to be enabled explicitly.
|
||||||
if not used, it never causes HTTP session creation. On each request, there is an "`input`"
|
However, if not used, it never causes HTTP session creation. On each request, there is an
|
||||||
`FlashMap` with attributes passed from a previous request (if any) and an "`output`"
|
"`input`" `FlashMap` with attributes passed from a previous request (if any) and an
|
||||||
`FlashMap` with attributes to save for a subsequent request. Both `FlashMap` instances
|
"`output`" `FlashMap` with attributes to save for a subsequent request. Both `FlashMap`
|
||||||
are accessible from anywhere in Spring MVC through static methods in
|
instances are accessible from anywhere in Spring MVC through static methods in
|
||||||
`RequestContextUtils`.
|
`RequestContextUtils`.
|
||||||
|
|
||||||
Annotated controllers typically do not need to work with `FlashMap` directly. Instead, a
|
Annotated controllers typically do not need to work with `FlashMap` directly. Instead, a
|
||||||
|
|
Loading…
Reference in New Issue