如何在 Grails 2 上启用 HAL 分页链接。4.X

How to enable HAL Pagination links on Grails 2.4.X

Grails 2.4.x 支持 HAL。

尽管嵌入式资源存在一些问题 (https://jira.grails.org/browse/GRAILS-10954),但我已经开始让它工作了。但是我仍然不确定如何处理文档中显示的分页链接("prev"、"next")。

HalJsonRenderer 有什么方法可以帮助解决这一点吗?

我所做的是扩展 HalJsonCollectionRenderer 并覆盖此方法:

protected void writeLinkForCurrentPath(RenderContext context, MimeType mimeType, JsonWriter writer) {
    final href = linkGenerator.link(uri: context.resourcePath, method: HttpMethod.GET.toString(), absolute: absoluteLinks)
    final resourceRef = href
    final locale = context.locale
    def link = new Link(RELATIONSHIP_SELF, href)
    link.title = getResourceTitle(resourceRef, locale)
    link.contentType = mimeType ? mimeType.name : null

    writeLink(link, locale, writer)
}

为 PREV 和 NEXT 添加链接以在需要时呈现。

为了做到这一点,我们需要访问查询字符串参数,这些参数可以作为 RenderContext 对象中的参数访问 (context.getArguments())

效果很好,也不太复杂。

不过,如果有其他方法,我会很乐意知道。