标签:
@Target({ElementType.PARAMETER, ElementType.METHOD, ElementType.FIELD}) @Retention(RetentionPolicy.RUNTIME) public @interface FormParam { /** * Defines the name of the form parameter whose value will be used * to initialize the value of the annotated method argument. The name is * specified in decoded form, any percent encoded literals within the value * will not be decoded and will instead be treated as literal text. E.g. if * the parameter name is "a b" then the value of the annotation is "a b", * <i>not</i> "a+b" or "a%20b". */ String value(); }
说的是默认不进行编码。
以下介绍出自:
https://access.redhat.com/documentation/en-US/JBoss_Enterprise_Web_Platform/5/html/RESTEasy_Reference_Guide/_Encoded_and_encoding.html
@*
Param
s and specify path definitions and parameter names using encoded or decoded strings.@javax.ws.rs.Encoded
annotation can be used on a class, method, or parameter. By default, injected @PathParam
and @QueryParam
are decoded. Adding the @Encoded
annotation means that the value of these parameters will be provided in encoded form.@Path("/") public class MyResource { @Path("/{param}") @GET public String get(@PathParam("param") @Encoded String param) {...}
@PathParam
injected into the param
of the get()
method will be URL encoded. Adding the @Encoded
annotation as a parameter annotation triggers this effect.@Encoded
annotation on the entire method and any combination of @QueryParam
or @PathParam
‘s values will be encoded.@Path("/") public class MyResource { @Path("/{param}") @GET @Encoded public String get(@QueryParam("foo") String foo, @PathParam("param") String param) {} }
foo
query parameter and the param
path parameter will be injected as encoded values.@Path("/") @Encoded public class ClassEncoded { @GET public String get(@QueryParam("foo") String foo) {} }
@Path
annotation has an attribute called encode. This controls whether the literal part of the value supplied (that is, the characters that are not part of a template variable) are URL-encoded. If true
, any characters in the URI template that are not valid will be automatically encoded. If false
, then all characters must be valid URI characters. By default, the encode
attribute is set to true
. (You can also encode the characters by hand.)@Path(value="hello%20world", encode=false)
@Path.encode()
, this controls whether the specified query parameter name should be encoded by the container before it tries to find the query parameter in the request.@QueryParam(value="hello%20world", encode=false)
标签:
原文地址:http://www.cnblogs.com/let5see/p/4389597.html