首页 > 其他分享 >JAX-RS之@QueryParam和@DefaultValue

JAX-RS之@QueryParam和@DefaultValue

时间:2022-12-05 13:03:04浏览次数:53  
标签:orderBy 200 getUsers JAX DefaultValue called Path QueryParam


先来看@queryparam
   先看例子:
 

1.   
2. Path("/users")
3. public class
4.
5. @GET
6. @Path("/query")
7. public
8. @QueryParam("from") int
9. @QueryParam("to") int
10. @QueryParam("orderBy") List<String> orderBy) {
11.
12. return
13. 200)
14. "getUsers is called, from : " + from + ", to : "
15. ", orderBy"
16.
17. }
18.
19. }


Path("/users")
public class UserService {

@GET
@Path("/query")
public Response getUsers(
@QueryParam("from") int from,
@QueryParam("to") int to,
@QueryParam("orderBy") List<String> orderBy) {

return Response
.status(200)
.entity("getUsers is called, from : " + from + ", to : " + to
+ ", orderBy" + orderBy.toString()).build();

}

}


   URL输入为:users/query?from=100&to=200&orderBy=age&orderBy=name


  此时,输出为:


getUsers is called, from : 100, to : 200, orderBy[age, name]


   要注意的是,跟@pathparam不同,@queryparam


中,指定的是URL中的参数是以键值对的形式出现的,而在程序中


@QueryParam("from") int from则读出URL中from的值,


而@pathparem中,URL中只出现参数的值,不出现键值对,比如:


“/users/2011/06/30”



则:


  ​


1. @GET
2. @Path("{year}/{month}/{day}")
3. public
4. @PathParam("year") int
5. @PathParam("month") int
6. @PathParam("day") int
7.
8. "/" + month + "/"
9.
10. return Response.status(200)
11. "getUserHistory is called, year/month/day : "
12. .build();
13.
14. }

@GET
@Path("{year}/{month}/{day}")
public Response getUserHistory(
@PathParam("year") int year,
@PathParam("month") int month,
@PathParam("day") int day) {

String date = year + "/" + month + "/" + day;

return Response.status(200)
.entity("getUserHistory is called, year/month/day : " + date)
.build();

}


输出为:


getUserHistory is called, year/month/day : 2011/6/30



2 以动态的方式获得:


  


1. @Path("/users")
2. public class
3.
4. @GET
5. @Path("/query")
6. public Response getUsers(@Context
7.
8. "from");
9. "to");
10. "orderBy");
11.
12. return
13. 200)
14. "getUsers is called, from : " + from + ", to : "
15. ", orderBy"
16.
17. }
18.

@Path("/users")
public class UserService {

@GET
@Path("/query")
public Response getUsers(@Context UriInfo info) {

String from = info.getQueryParameters().getFirst("from");
String to = info.getQueryParameters().getFirst("to");
List<String> orderBy = info.getQueryParameters().get("orderBy");

return Response
.status(200)
.entity("getUsers is called, from : " + from + ", to : " + to
+ ", orderBy" + orderBy.toString()).build();

}



URL;users/query?from=100&to=200&orderBy=age&orderBy=name


输出为:


getUsers is called, from : 100, to : 200, orderBy[age, name]


注意这里把orderby后的两个参数读入为LIST处理了.




3 @DefaultValue,默认值



  例子:


 

Java代码 
1. @Path("/users")
2. public class
3.
4. @GET
5. @Path("/query")
6. public
7. @DefaultValue("1000") @QueryParam("from") int
8. @DefaultValue("999")@QueryParam("to") int
9. @DefaultValue("name") @QueryParam("orderBy") List<String> orderBy) {
10.
11. return
12. 200)
13. "getUsers is called, from : " + from + ", to : "
14. ", orderBy"
15.
16. }

@Path("/users")
public class UserService {

@GET
@Path("/query")
public Response getUsers(
@DefaultValue("1000") @QueryParam("from") int from,
@DefaultValue("999")@QueryParam("to") int to,
@DefaultValue("name") @QueryParam("orderBy") List<String> orderBy) {

return Response
.status(200)
.entity("getUsers is called, from : " + from + ", to : " + to
+ ", orderBy" + orderBy.toString()).build();

}



URL:users/query


输出:getUsers is called, from : 1000, to : 999, orderBy[name]



很好理解吧 


标签:orderBy,200,getUsers,JAX,DefaultValue,called,Path,QueryParam
From: https://blog.51cto.com/u_14230175/5911925

相关文章

  • JAX-RS之下载文件
    今天学习两个,分别是JAX-RS之下载文件  首先,看例子,下载服务器的文本文件  ​1.@Path("/file")2.publicclass3.4.privatestaticf......
  • 后端返回二进制内容时 $.ajax请求返回乱码问题
    前端通过jQueryajax接受后端的文件流,前端下载文件后内容乱码原因分析:jQueryajaxresponse类型只能是:xml,html,script,json,jsonp,text。无法接受blob类型的response。当......
  • 数据请求 ajax axios
    leturl="https://www.fastmock.site/mock/39aa306dc9dec321fb0237a30b3040d2/api"//使用jqueryajax获取数据$.ajax({type:"get",//请求方式......
  • jaxb中对java.util.Date的处理
    JAXB是个好东西,转换JAVAOBJECT到XML的,最近发现JAXB中对java.util.Date的转换有些要注意的地方,笔记之。比如有一个POJO如下:importjava.util.Date;p......
  • 原生axjax 和axio的结合使用
    固定请求地址和方法<body><script>/*1.新闻接口gethttp://ajax-api.itheima.net/api/news无参数*/functio......
  • SSM使用ajax实现图片上传与删除功能
    图片上传与删除​​1.上传文件​​​​2.删除数据,并且删除对应的文件​​​​3.修改上传文件至非项目路径​​之前写了一篇博客记录了关于修改资料中的图片上传​​(传送门......
  • day22 --> (AJAX、JSON)
    AJAX:概念:ASynchronousJavaScriptAndXMl 异步的JavaScript和XML1.异步和同步:客户端和服务器端相互通信的基础上  AJAX是一种无需重新加载整个页面的情况......
  • 初识ajax初次使用get,post传参
    浅了解http和httpsHTTP协议以名文的方式发送内容,不会提供任何方式的数据加密。HTTP协议不适合传输一些敏感信息,比如(信用卡号,密码等支付信息)HTTPS则是具有安全性的ssl加密......
  • 原生ajax 发送请求
    原生ajax 发送请求原生发送请求不带参数<body><h2>原生ajax</h2><button>原生发送请求不带参数</button><script>document.querySelector("b......
  • JAXB中各种常见注解小结
    在JAXB中(用于JAVA对象和xml之间的转换),经常出现各类的@XmlElement这样的标记,下面就来以一个例子小结下,加深学习:[code="java"]importjava......