最近用jersey写resultful风格的接口,一些注解还是容易混淆,在自己博客里我给整理下,后面如果碰到其它的会继续补充,以后查的时候也不用百度了
1. @PathParam
使用@PathParam可以获取URI中指定规则的参数,如:
@DELETE
@Path(“login/{platformId}”)
@Produces(MediaType.APPLICATION_JSON)
public Response deletePlatform(@PathParam(“platformId”) String platformId) {
…
}
这个在SpringMVC中是这样的:
@RequestMapping(“login/{platformId}”)
@ResponseStatus(HttpStatus.MOVED_PERMANENTLY)
public String login(@PathVariable(“platformId”) Integer platformId){
。。。。。
}
当浏览器发出:http://localhost:8080/login/123 的请求时 会将123赋值给platformId
2. @QueryParam
@QueryParam用于获取GET请求中的查询参数,如:
@GET
@Path(“login”)
public Response findPages(@QueryParam(“pageSize”)@DefaultValue(“1”) Integer pageIndex){
。。。。
}
这个比较简单就是get请求参数而已,注意这个是get的
当浏览器发出:http://localhost:8080/login/page?pageSize=123 的请求时 会将123赋值给pageSize
3. @FormParam
@FormParam,从POST请求的表单参数中获取数据。如:
@PUT
@Path(“{platformId}”)
public Response putPlatform(@PathParam(“platformId”) String platformId){
……
}
当发起请求是获取post请求的表单值将key为platformId的value赋值给platformId
4. @BeanParam
@BeanParam,类似springMVC中将请求中与对象属性name相对应的value封装到对象中。如:
@XmlRootElement(name = “platform”)
public class PlatForm implements Serializable {
private static final long serialVersionUID = 1L;
@QueryParam(“platformName”)
private String platformName;
@QueryParam(“platformId”)
private String platformId;
……//get set
}
//Controller
@GET
@Produces(MediaType.TEXT_PLAIN)
public String getPlatForm(@BeanParam PlatForm platForm){
String id=platForm.getId();
}
访问链接:
http://localhost:8888/plant?platformId=123&platformName=hsh
参数值就会自动映射到PlatForm中
5. Map获取
@POST
@Consumes(“application/x-www-form-urlencoded”)
public void post(MultivaluedMap