@Target(value={PARAMETER,METHOD,FIELD}) @Retention(value=RUNTIME) @ParamQualifier public @interface FormDataParam
FormParam
annotation in conjunction with the media type
"application/x-www-form-urlencoded" is inefficient for sending and
consuming large quantities of binary data or text containing non-ASCII
characters.
This annotation in conjunction with the media type "multipart/form-data"
should be used for submitting and consuming forms that contain files,
non-ASCII data, and binary data.
The type T
of the annotated parameter must be one of the
following:
FormDataBodyPart
. The value of the parameter will be the
first named body part, otherwise null if such a named body part is not
present.
List
or Collection
of FormDataBodyPart
.
The value of the
parameter will one or more named body parts with the same name, otherwise
null if such a named body part is not present.
FormDataContentDisposition
. The value of the parameter will be
the content disposition of the first named body part, otherwise null if
such a named body part is not present.
List
or Collection
of FormDataContentDisposition
.
The value of
the parameter will one or more content dispositions of the named body parts
with the same name, otherwise null if such a named body part is not
present.
T
,
the media type of the named part, and the bytes of the named body part as
input.
If there is no named part present and there is a default value present as
declared by DefaultValue
then the media type will be set to
"text/plain". The value of the parameter will be the result of reading
using the message body reader given the type T
, the media type
"text/plain", and the UTF-8 encoded bytes of the default value as input.
If there is no message body reader available and the type T
conforms
to a type specified by FormParam
then processing is performed
as specified by FormParam
, where the values of the form parameter
are String
instances produced by reading the bytes of the named body
parts utilizing a message body reader for the String
type and the
media type "text/plain".
If there is no named part present then processing is performed as
specified by FormParam
.
Where the server consumes a "multipart/form-data" request entity body that contains one optional named body part "enabled" and two required named body parts "data" and "file". The optional part "enabled" is processed as a@POST @Consumes(MediaType.MULTIPART_FORM_DATA_TYPE) public String postForm( @DefaultValue("true") @FormDataParam("enabled") boolean enabled, @FormDataParam("data") FileData bean, @FormDataParam("file") InputStream file, @FormDataParam("file") FormDataContentDisposition fileDisposition) { ... }
boolean
value, if the part is absent then the
value will be true
.
The part "data" is processed as a JAXB bean and contains some meta-data
about the following part.
The part "file" is a file that is uploaded, this is processed as an
InputStream
. Additional information about the file from the
"Content-Disposition" header can be accessed by the parameter
fileDisposition
.
Note that, whilst the annotation target permits use on fields and methods,
this annotation is only required to be supported on resource method
parameters.FormDataMultiPart
,
FormDataBodyPart
,
FormDataContentDisposition
,
DefaultValue
,
FormParam
public abstract String value
Copyright © 2007-2023, Oracle and/or its affiliates. All Rights Reserved. Use is subject to license terms.