标签:
@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
@*Params 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