CQ5.5获取servlet中资源的.infinity.json

Bro*_*die 4 sling aem

如果我们设置了组件资源:

  • myComponent的
    • mycomponent.jsp
    • mycomponent.JSON.jsp

我们可以假设它将如此工作:

  • /path/to/mycomponent.html =>请参阅html
  • /path/to/mycomponent.json =>看我的json

在servlet中我们也可以做类似的事情

Resource myResource = resourceResolver.getResource(request, "path/to/mycomponent");
Run Code Online (Sandbox Code Playgroud)

我只是好奇我如何能够在servlet上下文中获得.json表示.

我已经做了一些解决这个问题的事情,但我想知道是否有另一种方法,因为这个解决方案有很大的局限性.基本上我在路径上加载Node并执行Node的JSONDumps和它的子节点.这将允许我从mycomponent.getPath()的资源中获取更大的JSON集,但它不允许我拉动我通过mycomponent.JSON.jsp创建的自定义JSON视图.

任何想法/建议都会很棒,谢谢.

Ber*_*taz 5

要捕获呈现资源的输出,您可以使用该SlingRequestProcessor服务,该服务在内部发出请求而不通过网络层,但仍使用用于处理HTTP请求的所有相同呈现机制.

如果您只需要在计算的渲染中包含此类输出,则可以使用Request.getRequestDispatcher(somePathWithJsonExtension).include(request, response)Sling和CQ包含的JSP标记.

使用resourceResolver.getResource(...)不进行任何渲染,它只提供一个原始资源,它是一个数据/内容对象.