在 CQ 中,如果我请求诸如localhost:4502/content/geometrixx/en.json
,我会获取 JSON 格式的节点信息。这同样适用于 XML 扩展。
我的问题是,如果URL扩展名是,那么节点信息以JSON格式呈现是在哪里实现的json
?
基本上,扩展名只是简单的文本和 URL 结构的另一部分。简单地附加json
不会神奇地获取 JSON 格式的信息。
显然,必须使用此信息来编写用于以 JSON 形式返回节点信息的逻辑。
我正在尝试了解 CQ 的内部运作方式。也许获取 JSON 的概念在 Apache Sling 中也是相同的?我不知道这是否是CQ特有的,但要点是一样的。我试过了/system/console/jcrresolver
也一样,但没有帮助。
这是 Apache Sling 的一个功能。所有 GET 请求都会调用 DefaultGetServlet。 servlet 检查请求的扩展名,并使用相应的渲染器(如果已启用)。
浏览一下代码默认获取Servlet https://github.com/apache/sling/blob/trunk/bundles/servlets/get/src/main/java/org/apache/sling/servlets/get/impl/DefaultGetServlet.java以及这个中的渲染器目录 https://github.com/apache/sling/tree/trunk/bundles/servlets/get/src/main/java/org/apache/sling/servlets/get/impl/helpers如那个HTML 渲染器 https://github.com/apache/sling/blob/trunk/bundles/servlets/get/src/main/java/org/apache/sling/servlets/get/impl/helpers/HtmlRendererServlet.java, JSON 渲染器 https://github.com/apache/sling/blob/trunk/bundles/servlets/get/src/main/java/org/apache/sling/servlets/get/impl/helpers/JsonRendererServlet.java and XML渲染器 https://github.com/apache/sling/blob/trunk/bundles/servlets/get/src/main/java/org/apache/sling/servlets/get/impl/helpers/XMLRendererServlet.java.
该文档位于此处:https://sling.apache.org/documentation/bundles/rendering-content-default-get-servlets.html https://sling.apache.org/documentation/bundles/rendering-content-default-get-servlets.html
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)