Polishing the Portlet sections of the reference manual.
This commit is contained in:
parent
dc897e7b34
commit
f14c2de5e9
|
|
@ -1020,7 +1020,7 @@ public class SampleController extends AbstractController {
|
||||||
<classname>DispatcherPortlet</classname> detects a multipart
|
<classname>DispatcherPortlet</classname> detects a multipart
|
||||||
request, it activates the resolver that has been declared in your
|
request, it activates the resolver that has been declared in your
|
||||||
context and hands over the request. What the resolver then does is
|
context and hands over the request. What the resolver then does is
|
||||||
wrap the current <interfacename>ActionRequest</interfacename> into a
|
wrap the current <interfacename>ActionRequest</interfacename> in a
|
||||||
<interfacename>MultipartActionRequest</interfacename> that has
|
<interfacename>MultipartActionRequest</interfacename> that has
|
||||||
support for multipart file uploads. Using the
|
support for multipart file uploads. Using the
|
||||||
<interfacename>MultipartActionRequest</interfacename> you can get
|
<interfacename>MultipartActionRequest</interfacename> you can get
|
||||||
|
|
@ -1039,7 +1039,8 @@ public class SampleController extends AbstractController {
|
||||||
<para>After the
|
<para>After the
|
||||||
<interfacename>PortletMultipartResolver</interfacename> has finished
|
<interfacename>PortletMultipartResolver</interfacename> has finished
|
||||||
doing its job, the request will be processed like any other. To use
|
doing its job, the request will be processed like any other. To use
|
||||||
it, you create a form with an upload field (see immediately below),
|
the <interfacename>PortletMultipartResolver</interfacename>, create
|
||||||
|
a form with an upload field (see example below),
|
||||||
then let Spring bind the file onto your form (backing object). To
|
then let Spring bind the file onto your form (backing object). To
|
||||||
actually let the user upload a file, we have to create a (JSP/HTML)
|
actually let the user upload a file, we have to create a (JSP/HTML)
|
||||||
form:</para>
|
form:</para>
|
||||||
|
|
@ -1050,8 +1051,8 @@ public class SampleController extends AbstractController {
|
||||||
<input type="submit"/>
|
<input type="submit"/>
|
||||||
</form>]]></programlisting>
|
</form>]]></programlisting>
|
||||||
|
|
||||||
<para>As you can see, we've created a field named “file” after the
|
<para>As you can see, we've created a field named “file” that matches the
|
||||||
property of the bean that holds the <literal>byte[]</literal>.
|
property of the bean that holds the <literal>byte[]</literal> array.
|
||||||
Furthermore we've added the encoding attribute
|
Furthermore we've added the encoding attribute
|
||||||
(<literal>enctype="multipart/form-data"</literal>), which is
|
(<literal>enctype="multipart/form-data"</literal>), which is
|
||||||
necessary to let the browser know how to encode the multipart fields
|
necessary to let the browser know how to encode the multipart fields
|
||||||
|
|
@ -1064,10 +1065,10 @@ public class SampleController extends AbstractController {
|
||||||
of editors available for handling files and setting the results on
|
of editors available for handling files and setting the results on
|
||||||
an object. There's a
|
an object. There's a
|
||||||
<classname>StringMultipartFileEditor</classname> capable of
|
<classname>StringMultipartFileEditor</classname> capable of
|
||||||
converting files to Strings (using a user-defined character set) and
|
converting files to Strings (using a user-defined character set), and
|
||||||
there is a <classname>ByteArrayMultipartFileEditor</classname> which
|
there is a <classname>ByteArrayMultipartFileEditor</classname> which
|
||||||
converts files to byte arrays. They function just as the
|
converts files to byte arrays. They function analogous to the
|
||||||
<classname>CustomDateEditor</classname> does.</para>
|
<classname>CustomDateEditor</classname>.</para>
|
||||||
|
|
||||||
<para>So, to be able to upload files using a form, declare the
|
<para>So, to be able to upload files using a form, declare the
|
||||||
resolver, a mapping to a controller that will process the bean, and
|
resolver, a mapping to a controller that will process the bean, and
|
||||||
|
|
@ -1133,7 +1134,7 @@ public class FileUploadBean {
|
||||||
}]]></programlisting>
|
}]]></programlisting>
|
||||||
|
|
||||||
<para>As you can see, the <classname>FileUploadBean</classname> has
|
<para>As you can see, the <classname>FileUploadBean</classname> has
|
||||||
a property typed <literal>byte[]</literal> that holds the file. The
|
a property of type <literal>byte[]</literal> that holds the file. The
|
||||||
controller registers a custom editor to let Spring know how to
|
controller registers a custom editor to let Spring know how to
|
||||||
actually convert the multipart objects the resolver has found to
|
actually convert the multipart objects the resolver has found to
|
||||||
properties specified by the bean. In this example, nothing is done
|
properties specified by the bean. In this example, nothing is done
|
||||||
|
|
@ -1142,7 +1143,7 @@ public class FileUploadBean {
|
||||||
mail it to somebody, etc).</para>
|
mail it to somebody, etc).</para>
|
||||||
|
|
||||||
<para>An equivalent example in which a file is bound straight to a
|
<para>An equivalent example in which a file is bound straight to a
|
||||||
String-typed property on a (form backing) object might look like
|
String-typed property on a form backing object might look like
|
||||||
this:</para>
|
this:</para>
|
||||||
|
|
||||||
<programlisting language="java"><![CDATA[public class FileUploadController extends SimpleFormController {
|
<programlisting language="java"><![CDATA[public class FileUploadController extends SimpleFormController {
|
||||||
|
|
@ -1232,11 +1233,11 @@ public class FileUploadBean {
|
||||||
<section id="portlet-exceptionresolver">
|
<section id="portlet-exceptionresolver">
|
||||||
<title>Handling exceptions</title>
|
<title>Handling exceptions</title>
|
||||||
|
|
||||||
<para>Just like Web MVC, Portlet MVC provides
|
<para>Just like Servlet MVC, Portlet MVC provides
|
||||||
<interfacename>HandlerExceptionResolver</interfacename>s to ease the
|
<interfacename>HandlerExceptionResolver</interfacename>s to ease the
|
||||||
pain of unexpected exceptions occurring while your request is being
|
pain of unexpected exceptions that occur while your request is being
|
||||||
processed by a handler that matched the request. Portlet MVC also
|
processed by a handler that matched the request. Portlet MVC also
|
||||||
provides the same concrete
|
provides a portlet-specific, concrete
|
||||||
<classname>SimpleMappingExceptionResolver</classname> that enables you
|
<classname>SimpleMappingExceptionResolver</classname> that enables you
|
||||||
to take the class name of any exception that might be thrown and map it
|
to take the class name of any exception that might be thrown and map it
|
||||||
to a view name.</para>
|
to a view name.</para>
|
||||||
|
|
@ -1245,7 +1246,7 @@ public class FileUploadBean {
|
||||||
<section id="portlet-annotation">
|
<section id="portlet-annotation">
|
||||||
<title>Annotation-based controller configuration</title>
|
<title>Annotation-based controller configuration</title>
|
||||||
|
|
||||||
<para>Spring 2.5 introduces an annotation-based programming model for MVC
|
<para>Spring 2.5 introduced an annotation-based programming model for MVC
|
||||||
controllers, using annotations such as
|
controllers, using annotations such as
|
||||||
<interfacename>@RequestMapping</interfacename>,
|
<interfacename>@RequestMapping</interfacename>,
|
||||||
<interfacename>@RequestParam</interfacename>,
|
<interfacename>@RequestParam</interfacename>,
|
||||||
|
|
@ -1256,6 +1257,12 @@ public class FileUploadBean {
|
||||||
direct dependencies on Servlet or Portlet API's, although they can easily
|
direct dependencies on Servlet or Portlet API's, although they can easily
|
||||||
get access to Servlet or Portlet facilities if desired.</para>
|
get access to Servlet or Portlet facilities if desired.</para>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
PetPortal is no longer included with the Spring distribution as of
|
||||||
|
Spring 3.0.0.RC1. Thus, the following is commented out until further
|
||||||
|
notice.
|
||||||
|
-->
|
||||||
|
<!--
|
||||||
<tip>
|
<tip>
|
||||||
<para>The Spring distribution ships with the
|
<para>The Spring distribution ships with the
|
||||||
<emphasis>PetPortal</emphasis> sample, which is a portal application that takes
|
<emphasis>PetPortal</emphasis> sample, which is a portal application that takes
|
||||||
|
|
@ -1263,6 +1270,7 @@ public class FileUploadBean {
|
||||||
of simple form processing. You can find the <emphasis>PetPortal</emphasis>
|
of simple form processing. You can find the <emphasis>PetPortal</emphasis>
|
||||||
application in the <literal>'samples/petportal'</literal> directory.</para>
|
application in the <literal>'samples/petportal'</literal> directory.</para>
|
||||||
</tip>
|
</tip>
|
||||||
|
-->
|
||||||
|
|
||||||
<para>The following sections document these annotations and how they are
|
<para>The following sections document these annotations and how they are
|
||||||
most commonly used in a Portlet environment.</para>
|
most commonly used in a Portlet environment.</para>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue