很抱歉,如果之前已经回答过这个问题。长话短说,我的任务是找出一种查询内容/页面的方法,以便能够在不同的页面中显示预览。这对我来说不是一个问题,除了我从未使用过AEM,其他开发人员没有网络服务经验。
从我所看到的是提到OSGi到创建一个.NET服务,所以我不确定他们所建议的是否对我想要完成的事情有些过分。我能够在CRXDE Lite中运行SQL查询(select * from nt:base where ....),我可以看到我想要提取的资源类型值。是否可以只使用查询创建JSP文件?
答案 0 :(得分:2)
简短的回答,是的,可以直接从jsp查询,但从开发人员的立场来看,这是一个非常糟糕的想法。
有几种查询存储库的方法,这完全取决于风格和要求。但强烈建议构建一个java服务,它从显示逻辑(也就是JSP)中抽象出实际的查询实现。这样您就可以在其他地方重用您的代码。如果您仍然坚持在JSP中直接执行它,则可以直接使用QueryBuilder服务来构造和执行查询,而不是您自己的服务。可以在adobe上找到一个基本示例。
我以多种方式查询存储库,它们都依赖于上下文和复杂性
上面的项目可以通过多种方式运行,我的个人风格是querybuilder api或resourceResolver.findResources(String query,String language),具体取决于上下文。
除了crx / de之外,测试查询的有用工具是/libs/cq/search/content/querydebug.html