只想运行我在服务器端与Jersey的分页方法,以及客户端上的JQuery。
在服务器上(假设用户刚刚请求/休息/用户?page = 1):
// Hardcoded the page number here, but it would be page-1, page+1
String prevLink = uriInfo.getRequestUri() + "?page=0";
String nextLink = uriInfo.getRequestUri() + "?page=2";
String linkHeader = String.format(LINK_HEADER_TMPL, prevLink, nextLink);
return List<User> currentPageResults;
这在响应中给出了以下标题:
Link: <http://localhost:8880/rest/users?page=0>; rel="prev", <http://localhost:8880/rest/users?page=2>; rel="next"
在客户端:
var xhr = $.getJSON("rest/users", function(allData) {
var links = (xhr.getResponseHeader("link")).split(',');
var relLinks = [];
$.each(links, function(index, value) {
var parts = value.split(';');
var url = parts[0].replace(/^.*<(.*)>.*$/m, '$1');
var rel = parts[1].replace(/^.*"(.*)".*$/m, '$1');
relLinks[rel] = url;
});
alert(relLinks['prev']);
警报给了我正确的东西,并且是我用来生成我的页面链接的内容:
http://localhost:8880/rest/users?page=0
所以问题:
顺便提一下,链接头的整个格式是如何产生的?表格“url; rel = name,url; rel = name”对我来说似乎有点奇怪。
编辑:找到此http://tools.ietf.org/html/rfc5988#section-6.2,指定“标准”关系名称
答案 0 :(得分:0)
假设您希望确保搜索引擎可以检索这些网页,我建议您更改链接以删除查询字符串。
http://localhost:8880/rest/users/0
其中0被解析为服务器端到所需的页码。就总页数而言,如果您已经点击了用户列表的末尾,您就会在服务器上知道。如果是这样,只需省略你的nextLink。同样,如果currentPage == 0则省略prevLink。
您可以在此处查看此操作:http://www.autoquoter.com/aq/en/Blog/Archives