CQ5递归选择器值无效'数据' (data.json.jsp)

时间:2015-07-23 22:12:21

标签: json adobe cq5 aem sling

我们说我在CQ5中有一个页面。我使用带有单个组件的模板创建了此页面,将其命名为tableComp,然后点击了url Test.html 。该组件包含其标准JSP文件,但正在使用的页面模板还包含用于自定义数据的JSON或XML呈现的特定JSP,而不包含页面数据。

这个用于呈现的JSP文件的名称类似于 data.xml.jsp data.json.jsp 。要点击 Test.html 页面的渲染JSP,您可以调用 / content / {org} / desktop / en_US / {name} /Test.data.json 或< EM> /内容/ {组织} /桌面/ EN_US / {名称} /Test.data.xml

将调用XML / JSON JSP,其中包含仅获取值并打印到屏幕XML或JSON的代码。例:Blah

现在,当我点击名为 data.json.jsp 的新文件时,我希望将信息显示为JSON输出。点击 data.xml.jsp 时,它可以正常工作并点击JSP。当我为 data.json.jsp 执行完全相同的过程时,我得到以下内容。

Invalid recursion selector value 'data' 
Cannot serve request to /content/{org}/desktop/en_US/{name}/Test.data.json in org.apache.sling.servlets.get.DefaultGetServlet

Request Progress:

      0 (2015-07-22 18:10:06) TIMER_START{Request Processing}
      0 (2015-07-22 18:10:06) COMMENT timer_end format is {<elapsed msec>,<timer name>} <optional message>
      0 (2015-07-22 18:10:06) LOG Method=GET, PathInfo=/content/{org}/desktop/en_US/{name}/Test.data.json

我已尝试将Pages.json.jsp文件添加到/ libs / foundation / components / primary / cq / Page部分,如另一个论坛所示,但这没有帮助。此Pages.json.jsp文件的内容为&lt;%@ include file =&#34; proxy.jsp&#34;%&gt ;.

如何让JSON适用于此类请求?

编辑:

我已经改变了原来的解释来澄清我的问题。

1 个答案:

答案 0 :(得分:2)

var SomeClass = function() { this.person = function() { this.setTitle = function(title) { document.write(title); }; return this; // ^^^^^^^^^ }; }; var myObj = new SomeClass(); myObj.person().setTitle('Hello World!');看起来正在处理该请求,而DefaultGetServlet又使用JsonRendererServlet来处理使用.json扩展名的请求。

由于JsonRendererServlet需要数字选择器或infinity选择器,因此会抛出以下错误。

  

无效的递归选择器值<<selector>>

但是,请求/Test/_jcr_content.data.json会呈现由data.json.jsp而不是DefaultGetServlet处理的JSON数据。