|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectorg.springframework.http.converter.FormHttpMessageConverter
public class FormHttpMessageConverter
Implementation of HttpMessageConverter that can handle form data, including multipart form data
(i.e. file uploads).
This converter can write the application/x-www-form-urlencoded and multipart/form-data media
types, and read the application/x-www-form-urlencoded) media type (but not multipart/form-data).
In other words, this converter can read and write 'normal' HTML forms (as
MultiValueMap<String, String>), and it can write multipart form (as
MultiValueMap<String, Object>. When writing multipart, this converter uses other
HttpMessageConverters to write the respective MIME parts. By default, basic converters
are registered (supporting Strings and Resources, for instance); these can be overridden by setting
the partConverters property.
For example, the following snippet shows how to submit an HTML form:
RestTemplate template = new RestTemplate(); // FormHttpMessageConverter is configured by default
MultiValueMap<String, String> form = new LinkedMultiValueMap<String, String>();
form.add("field 1", "value 1");
form.add("field 2", "value 2");
form.add("field 2", "value 3");
template.postForLocation("http://example.com/myForm", form);
The following snippet shows how to do a file upload:
MultiValueMap<String, Object> parts = new LinkedMultiValueMap<String, Object>();
parts.add("field 1", "value 1");
parts.add("file", new ClassPathResource("myFile.jpg"));
template.postForLocation("http://example.com/myFileUpload", parts);
Some methods in this class were inspired by org.apache.commons.httpclient.methods.multipart.MultipartRequestEntity.
MultiValueMap| Constructor Summary | |
|---|---|
FormHttpMessageConverter()
|
|
| Method Summary | |
|---|---|
void |
addPartConverter(HttpMessageConverter<?> partConverter)
Add a message body converter. |
boolean |
canRead(java.lang.Class<?> clazz,
MediaType mediaType)
|
boolean |
canWrite(java.lang.Class<?> clazz,
MediaType mediaType)
|
protected byte[] |
generateMultipartBoundary()
Generate a multipart boundary. |
protected java.lang.String |
getFilename(java.lang.Object part)
Return the filename of the given multipart part. |
java.util.List<MediaType> |
getSupportedMediaTypes()
|
MultiValueMap<java.lang.String,java.lang.String> |
read(java.lang.Class<? extends MultiValueMap<java.lang.String,?>> clazz,
HttpInputMessage inputMessage)
|
void |
setCharset(java.nio.charset.Charset charset)
Sets the character set used for writing form data. |
void |
setPartConverters(java.util.List<HttpMessageConverter<?>> partConverters)
Set the message body converters to use. |
void |
write(MultiValueMap<java.lang.String,?> map,
MediaType contentType,
HttpOutputMessage outputMessage)
|
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
|---|
public FormHttpMessageConverter()
| Method Detail |
|---|
public final void addPartConverter(HttpMessageConverter<?> partConverter)
public final void setPartConverters(java.util.List<HttpMessageConverter<?>> partConverters)
public void setCharset(java.nio.charset.Charset charset)
public boolean canRead(java.lang.Class<?> clazz,
MediaType mediaType)
canRead in interface HttpMessageConverter<MultiValueMap<java.lang.String,?>>
public boolean canWrite(java.lang.Class<?> clazz,
MediaType mediaType)
canWrite in interface HttpMessageConverter<MultiValueMap<java.lang.String,?>>public java.util.List<MediaType> getSupportedMediaTypes()
getSupportedMediaTypes in interface HttpMessageConverter<MultiValueMap<java.lang.String,?>>
public MultiValueMap<java.lang.String,java.lang.String> read(java.lang.Class<? extends MultiValueMap<java.lang.String,?>> clazz,
HttpInputMessage inputMessage)
throws java.io.IOException,
HttpMessageNotReadableException
read in interface HttpMessageConverter<MultiValueMap<java.lang.String,?>>java.io.IOException
HttpMessageNotReadableException
public void write(MultiValueMap<java.lang.String,?> map,
MediaType contentType,
HttpOutputMessage outputMessage)
throws java.io.IOException,
HttpMessageNotWritableException
write in interface HttpMessageConverter<MultiValueMap<java.lang.String,?>>java.io.IOException
HttpMessageNotWritableExceptionprotected byte[] generateMultipartBoundary()
Default implementation returns a random boundary. Can be overridden in subclasses.
protected java.lang.String getFilename(java.lang.Object part)
Content-Disposition header.
Default implementation returns Resource.getFilename() if the part is a Resource, and
null in other cases. Can be overridden in subclasses.
part - the part to determine the file name for
null if not known
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||