我们说我在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适用于此类请求?
编辑:
我已经改变了原来的解释来澄清我的问题。
答案 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数据。