Moved REST views to View chapter.
This commit is contained in:
parent
7b1ff5859e
commit
b57085909c
|
|
@ -38,120 +38,6 @@
|
|||
configuration</link> to understand the general programming model.</para>
|
||||
</section>
|
||||
|
||||
|
||||
<section id="rest-views">
|
||||
<title>Views</title>
|
||||
|
||||
<para>Several views were added in Spring 3 to help support creating
|
||||
RESTful services. They are:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para><classname>AbstractAtomFeedView</classname> - returns an Atom
|
||||
feed</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><classname>AbstractRssFeedView</classname> - returns a RSS
|
||||
feed</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><classname>MarshallingView</classname> - returns an XML
|
||||
representation using Spring's Object to XML mapping (OXM)
|
||||
functionality</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<note>
|
||||
<para>Available separately is the
|
||||
<classname>JacksonJsonView</classname> included as part of the Spring
|
||||
JavaScript project.</para>
|
||||
</note>
|
||||
|
||||
<section id="rest-feedview">
|
||||
<title>Feed Views</title>
|
||||
|
||||
<para>Both <classname>AbstractAtomFeedView</classname> and
|
||||
<classname>AbstractRssFeedView</classname> inherit from the base class
|
||||
<classname>AbstractFeedView</classname> and are used to provide Atom
|
||||
and RSS Feed views respectfully. They are based on java.net's <ulink
|
||||
url="https://rome.dev.java.net">ROME</ulink> project and are located
|
||||
in the package
|
||||
<literal>org.springframework.web.servlet.view.feed</literal>.</para>
|
||||
|
||||
<para><classname>AbstractAtomFeedView</classname> requires you to
|
||||
implement the <methodname>buildFeedEntries</methodname> method and
|
||||
optionally override the <methodname>buildFeedMetadata</methodname>
|
||||
method (the default implementation is empty), as shown below</para>
|
||||
|
||||
<programlisting language="java">public class SampleContentAtomView extends AbstractAtomFeedView {
|
||||
|
||||
@Override
|
||||
protected void buildFeedMetadata(Map<String, Object> model, Feed feed,
|
||||
HttpServletRequest request) {
|
||||
// implementation omitted
|
||||
}
|
||||
|
||||
@Override
|
||||
protected List<Entry> buildFeedEntries(Map<String, Object> model,
|
||||
HttpServletRequest request,
|
||||
HttpServletResponse response) throws Exception {
|
||||
|
||||
// implementation omitted
|
||||
}
|
||||
}</programlisting>
|
||||
|
||||
<para>Similar requirements apply for implementing
|
||||
<classname>AbstractRssFeedView</classname>, as shown below</para>
|
||||
|
||||
<programlisting language="java">public class SampleContentAtomView extends AbstractRssFeedView {
|
||||
|
||||
@Override
|
||||
protected void buildFeedMetadata(Map<String, Object> model, Channel feed,
|
||||
HttpServletRequest request) {
|
||||
// implementation omitted
|
||||
}
|
||||
|
||||
@Override
|
||||
protected List<Item> buildFeedItems(Map<String, Object> model,
|
||||
HttpServletRequest request,
|
||||
HttpServletResponse response) throws Exception {
|
||||
// implementation omitted
|
||||
}
|
||||
|
||||
}</programlisting>
|
||||
|
||||
<para>The <methodname>buildFeedItems</methodname> and
|
||||
<methodname>buildFeedEntires</methodname> pass in the HTTP request in
|
||||
case you need to access the Locale. The HTTP response is passed in
|
||||
only for the setting of cookies or other HTTP headers. The feed will
|
||||
automatically be written to the response object after the method
|
||||
returns.</para>
|
||||
|
||||
<para>For an example of creating a Atom view please refer to Alef
|
||||
Arendsen's SpringSource TeamBlog <ulink
|
||||
url="http://blog.springsource.com/2009/03/16/adding-an-atom-view-to-an-application-using-springs-rest-support/">entry</ulink>.</para>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<title>XML Marshalling View</title>
|
||||
|
||||
<para>The <classname>MarhsallingView</classname> uses a XML
|
||||
<interfacename>Marshaller</interfacename> defined in the
|
||||
<classname>org.springframework.oxm</classname> package to render the
|
||||
response content as XML. The object to be marshalled can be set
|
||||
explicitly using <classname>MarhsallingView</classname>'s
|
||||
<property>modelKey</property> bean property. Alternatively, the view
|
||||
will iterate over all model properties marhsall only those types that
|
||||
are supported by the <interfacename>Marshaller</interfacename>. For
|
||||
more information on the functionality in the
|
||||
<classname>org.springframework.oxm</classname> package refer to the
|
||||
chapter <link linkend="oxm">Marshalling XML using O/X
|
||||
Mappers</link>.</para>
|
||||
</section>
|
||||
</section>
|
||||
|
||||
<section id="rest-method-conversion">
|
||||
<title>HTTP Method Conversion</title>
|
||||
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue