@ -2559,15 +2559,6 @@ background=/themes/cool/img/coolBg.jpg</programlisting>
<programlisting language= "xml" > < bean id="multipartResolver"
<programlisting language= "xml" > < bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<lineannotation > < !-- one of the properties available; the maximum file size in bytes --> </lineannotation>
< property name="maxUploadSize" value="100000"/>
< /bean> </programlisting>
<para > This example uses the
<classname > CosMultipartResolver</classname> :</para>
<programlisting language= "xml" > < bean id="multipartResolver" class="org.springframework.web.multipart.cos.CosMultipartResolver">
<lineannotation > < !-- one of the properties available; the maximum file size in bytes --> </lineannotation>
<lineannotation > < !-- one of the properties available; the maximum file size in bytes --> </lineannotation>
< property name="maxUploadSize" value="100000"/>
< property name="maxUploadSize" value="100000"/>
< /bean> </programlisting>
< /bean> </programlisting>
@ -2575,9 +2566,7 @@ background=/themes/cool/img/coolBg.jpg</programlisting>
<para > Of course you also need to put the appropriate jars in your
<para > Of course you also need to put the appropriate jars in your
classpath for the multipart resolver to work. In the case of the
classpath for the multipart resolver to work. In the case of the
<classname > CommonsMultipartResolver</classname> , you need to use
<classname > CommonsMultipartResolver</classname> , you need to use
<literal > commons-fileupload.jar</literal> ; in the case of the
<literal > commons-fileupload.jar</literal> .</para>
<classname > CosMultipartResolver</classname> , use
<literal > cos.jar</literal> .</para>
<para > When the Spring <classname > DispatcherServlet</classname> detects a
<para > When the Spring <classname > DispatcherServlet</classname> detects a
multi-part request, it activates the resolver that has been declared in
multi-part request, it activates the resolver that has been declared in
@ -2596,7 +2585,7 @@ background=/themes/cool/img/coolBg.jpg</programlisting>
<para > After the <classname > MultipartResolver</classname> completes its
<para > After the <classname > MultipartResolver</classname> completes its
job, the request is processed like any other. To use it<!-- to use what? --> ,
job, the request is processed like any other. To use it<!-- to use what? --> ,
you create a form with an upload field (see immediately below) that will
you create a form with an upload field (see immediately below) that will
allow the user to upload a form, t hen let Spring bind the file onto your
allow the user to upload a form. T hen let Spring bind the file onto your
form (backing object). <!-- I reworded because it sounded like you refer twice to creating a form. Where in example do you *let* Spring bind the file? Clarify. --> <!-- Does reader know what a backing object refers to? --> </para>
form (backing object). <!-- I reworded because it sounded like you refer twice to creating a form. Where in example do you *let* Spring bind the file? Clarify. --> <!-- Does reader know what a backing object refers to? --> </para>
<programlisting language= "xml" > < html>
<programlisting language= "xml" > < html>
@ -2660,25 +2649,25 @@ background=/themes/cool/img/coolBg.jpg</programlisting>
protected ModelAndView onSubmit(HttpServletRequest request, HttpServletResponse response,
protected ModelAndView onSubmit(HttpServletRequest request, HttpServletResponse response,
Object command, BindException errors) throws ServletException, IOException {
Object command, BindException errors) throws ServletException, IOException {
<lineannotation > // cast the bean</lineannotation>
<lineannotation > // cast the bean</lineannotation>
FileUploadBean bean = (FileUploadBean) command;
FileUploadBean bean = (FileUploadBean) command;
<lineannotation > let's see if there's content there</lineannotation>
<lineannotation > // let's see if there's content there</lineannotation>
byte[] file = bean.getFile();
byte[] file = bean.getFile();
if (file == null) {
if (file == null) {
<lineannotation > // hmm, that's strange, the user did not upload anything</lineannotation>
<lineannotation > // hmm, that's strange, the user did not upload anything</lineannotation>
}
}
<lineannotation > // well, let's do nothing with the bean for now and return</lineannotation>
<lineannotation > // well, let's do nothing with the bean for now and return</lineannotation>
return super.onSubmit(request, response, command, errors);
return super.onSubmit(request, response, command, errors);
}
}
protected void initBinder(HttpServletRequest request, ServletRequestDataBinder binder)
protected void initBinder(HttpServletRequest request, ServletRequestDataBinder binder)
throws ServletException {
throws ServletException {
// to actually be able to convert Multipart instance to byte[]
<lineannotation > // to actually be able to convert Multipart instance to byte[]</lineannotation>
// we have to register a custom editor
<lineannotation > // we have to register a custom editor</lineannotation>
binder.registerCustomEditor(byte[].class, new ByteArrayMultipartFileEditor());
binder.registerCustomEditor(byte[].class, new ByteArrayMultipartFileEditor());
// now Spring knows how to handle multipart object and convert them
<lineannotation > // now Spring knows how to handle multipart objects and convert them</lineannotation>
}
}
}
}
@ -2711,16 +2700,16 @@ public class FileUploadBean {
protected ModelAndView onSubmit(HttpServletRequest request, HttpServletResponse response,
protected ModelAndView onSubmit(HttpServletRequest request, HttpServletResponse response,
Object command, BindException errors) throws ServletException, IOException {
Object command, BindException errors) throws ServletException, IOException {
<lineannotation > // cast the bean</lineannotation>
<lineannotation > // cast the bean</lineannotation>
FileUploadBean bean = (FileUploadBean) command;
FileUploadBean bean = (FileUploadBean) command;
<lineannotation > let's see if there's content there</lineannotation>
<lineannotation > // let's see if there's content there</lineannotation>
String file = bean.getFile();
String file = bean.getFile();
if (file == null) {
if (file == null) {
<lineannotation > // hmm, that's strange, the user did not upload anything</lineannotation>
<lineannotation > // hmm, that's strange, the user did not upload anything</lineannotation>
}
}
<lineannotation > // well, let's do nothing with the bean for now and return</lineannotation>
<lineannotation > // well, let's do nothing with the bean for now and return</lineannotation>
return super.onSubmit(request, response, command, errors);
return super.onSubmit(request, response, command, errors);
}
}
@ -2762,16 +2751,16 @@ public class FileUploadBean {
protected ModelAndView onSubmit(HttpServletRequest request, HttpServletResponse response,
protected ModelAndView onSubmit(HttpServletRequest request, HttpServletResponse response,
Object command, BindException errors) throws ServletException, IOException {
Object command, BindException errors) throws ServletException, IOException {
<lineannotation > // cast the bean</lineannotation>
<lineannotation > // cast the bean</lineannotation>
FileUploadBean bean = (FileUploadBean) command;
FileUploadBean bean = (FileUploadBean) command;
<lineannotation > let's see if there's content there</lineannotation>
<lineannotation > let's see if there's content there</lineannotation>
MultipartFile file = bean.getFile();
MultipartFile file = bean.getFile();
if (file == null) {
if (file == null) {
<lineannotation > // hmm, that's strange, the user did not upload anything</lineannotation>
<lineannotation > // hmm, that's strange, the user did not upload anything</lineannotation>
}
}
<lineannotation > // well, let's do nothing with the bean for now and return</lineannotation>
<lineannotation > // well, let's do nothing with the bean for now and return</lineannotation>
return super.onSubmit(request, response, command, errors);
return super.onSubmit(request, response, command, errors);
}
}
}
}