AEM SQL服务

时间:2015-12-31 18:09:53

标签: cq5 aem

很抱歉,如果之前已经回答过这个问题。长话短说,我的任务是找出一种查询内容/页面的方法,以便能够在不同的页面中显示预览。这对我来说不是一个问题,除了我从未使用过AEM,其他开发人员没有网络服务经验。

从我所看到的是提到OSGi到创建一个.NET服务,所以我不确定他们所建议的是否对我想要完成的事情有些过分。我能够在CRXDE Lite中运行SQL查询(select * from nt:base where ....),我可以看到我想要提取的资源类型值。是否可以只使用查询创建JSP文件?

1 个答案:

答案 0 :(得分:2)

简短的回答,是的,可以直接从jsp查询,但从开发人员的立场来看,这是一个非常糟糕的想法。

有几种查询存储库的方法,这完全取决于风格和要求。但强烈建议构建一个java服务,它从显示逻辑(也就是JSP)中抽象出实际的查询实现。这样您就可以在其他地方重用您的代码。如果您仍然坚持在JSP中直接执行它,则可以直接使用QueryBuilder服务来构造和执行查询,而不是您自己的服务。可以在adobe上找到一个基本示例。

我以多种方式查询存储库,它们都依赖于上下文和复杂性

  • XPath(尽管已经弃用了 - 它在很多查询中仍然排在最前面,并且不会很快消失,我相信)
  • SQL or SQL2(该链接适用于jboss文档,但语法相同)
  • Predicates

上面的项目可以通过多种方式运行,我的个人风格是querybuilder api或resourceResolver.findResources(String query,String language),具体取决于上下文。

除了crx / de之外,测试查询的有用工具是/libs/cq/search/content/querydebug.html