Typo fixes and formatting

This commit is contained in:
Juergen Hoeller 2019-03-29 23:44:00 +01:00
parent 85332c7a49
commit 462d047f72
2 changed files with 48 additions and 49 deletions

View File

@ -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>>.

View File

@ -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