首页 \ 问答 \ CQ5中的Restful URL(Restful URL in CQ5)

CQ5中的Restful URL(Restful URL in CQ5)

目前,CQ5中的所有页面都作为静态内容页面存在。 例如。

/products/categoryOne/productOne.html
/products/categoryOne/productTwo.html

我希望能够将其发展为一个更加动态的解决方案,我可以在其中做一些事情

/products/[dynamicCategory]/[dynamicProductName].html

然后,我将通过调用外部RESTful服务将适当的信息填充到模板中。 这是可能的,在CQ5? 似乎我需要每个类别/产品组合的实际CQ5页面。


Currently, all our pages in CQ5 exist as static content pages. eg.

/products/categoryOne/productOne.html
/products/categoryOne/productTwo.html

I'd like to be able to develop this as a more dynamic solution, where I can do something along the lines of

/products/[dynamicCategory]/[dynamicProductName].html

Which I would then populate with the appropriate information into the template by calling an external RESTful service. Is this possible, in CQ5? It seems like I would need an actual CQ5 page for every category/product combination.


原文:https://stackoverflow.com/questions/21620159
更新时间:2021-06-06 11:06

最满意答案

那么您的要求是在没有查询字符串的“产品”页面的单个实例上显示动态类别和产品信息?

apache sling url分解描述包含两种非常简单的方法来解决这个问题。 选择器或后缀路径。 这两种方法都可以包含动态数据的标识符。

使用选择器来标识类别和产品ID /名称,此方法的URL方案如下所示。

/products.[dynamicCategory].[dynamicProductName].html

使用后缀路径,URL方案将如下所示:

/products.html/[dynamicCategory]/[dynamicProductName]

使用这两种方法,您只需拥有一个产品页面实例,然后负责处理当前选择器的值或后缀路径以检索外部数据。


So your requirement is to display dynamic category and product information on a single instance of a "products" page without a querystring?

The apache sling url decomposition description contains two very simple approaches to solve that. Either selectors or a suffix path. Both approaches can contain your identifiers for dynamic data.

Using selectors to identify the category and product id/name, the URL scheme for this approach looks as follows.

/products.[dynamicCategory].[dynamicProductName].html

Using a suffix path the URL scheme would look as follows:

/products.html/[dynamicCategory]/[dynamicProductName]

With both approaches you just have one instance of a products page, which is then responsible for processing the values of the present selectors or suffix path an to retrieve the external data.

相关问答

更多

在CQ5中从jcr节点获取html输出(Get html output from a jcr node in CQ5)

节点本身它只是一个数据。 Sling框架负责渲染这些数据。 它使用一堆规则来确定如何呈现这些数据。 Sling脚本解析Cheet Sheet由于Sling是Web框架,它通过http请求呈现数据。 为了在CQ / AEM中模拟这个请求,我建议使用com.day.cq.contentsync.handler.util.RequestResponseFactory服务 import org.apache.sling.engine.SlingRequestProcessor; import com.da ...

在Adobe CQ5页面之间共享内容(Sharing content between Adobe CQ5 pages)

另一种选择是使该组件从其父级“继承”。 为此,您可以在对话框中添加一个复选框,指示组件是否应该从其父级继承。 如果是这样,您的组件代码可以爬行树,在父页面上查找导航组件并在找到时加载它。 如果不是,组件只能从其当前资源加载数据。 这将允许您创建任意数量的单独导航组,并允许内容作者编辑导航,而无需转到另一个配置区域,这可能会破坏编辑体验。 Another option is to make this component "inherit" from its parent. To do this yo ...

如何在CQ5中嵌入RTE组件中的图像(How to embed image in RTE componet in CQ5)

我相信格式化HTML的代码位于/libs/cq/ui/rte/core/HtmlSerializer.js和/或/libs/cq/ui/rte/core/HtmlProcessor.js因此您可能需要覆盖它将该文件复制到应用程序/apps/cq/ui/rte/core/HtmlSerializer.js和/或/libs/cq/ui/rte/core/HtmlProcessor.js 。 这段代码在几个地方做了toLowerCase,虽然我不知道它会改变一个样式属性值。 但我怀疑它是。 其中一个文件 ...

Apache FOP使用CQ5(Apache FOP using CQ5)

我使用page2fo.xsl查看了PDF生成,甚至还与Adobe支持人员联系。 所有设计只能有一个文件,因为它在OSGi中运行的最终XSLTTransformer服务中是硬编码的。 您只能将配置“/ libs / cq / config / rewriter / pdf”覆盖在应用程序下方的自定义配置中,例如“/ apps / cq / config / rewriter / pdf”,您可以在其中引用不同的page2fo.xsl一。 为了支持XSL中的多个设计,我建议使用匹配页面的cq:desi ...

在JSP或CQ5中获取url减去当前文件名(Get url minus current filename in JSP or CQ5)

我对CQ5一无所知,但由于getPath()返回一个普通的Java字符串,所以我希望你可以把前缀加到最后一个斜杠上,对于字符串s可以用s.substring(0, s.lastIndexOf('/')+1)来完成s.substring(0, s.lastIndexOf('/')+1) 。 如果你不得不把它做成一行,你可以做containingPage.getPath().substring(0, containingPage.getPath().lastIndexOf('/')+1) 。 I do ...

adobe cq5中的自定义内容查找器选项卡(Custom content finder tab in adobe cq5)

AFAIK,OOTB内容查找器使用GQL来获取结果并显示在CF选项卡中,这有时很难自定义(至少对我而言!)。 您可以使用Query Builder queries (比使用GQL更容易自定义)来Query Builder queries ACS Commons以获取自定义版本的内容查找器。 并且为了限制查询构建器查询特定路径,您可以参考此SOF帖子。 AFAIK , OOTB Content finder uses GQL to fetch the results and display in t ...

我对CQ5 / AEM URL重写方案缺少什么?(What am I missing for this CQ5/AEM URL rewriting scenario?)

默认情况下,CQ会重写a , area和form标签中的链接。 如果您还要在script标记中重写路径,请在发布时打开LinkCheckerTransformerFactory服务的OSGi配置,并将以下字符串添加到“ 重写元素”选项: script:src BTW: /content不是存储clientlib的最佳位置。 通常我们把这些东西放在/etc/designs/YOUR_APP 。 We finally managed to pinpoint the issue and fix thi ...

获取当前网页URL在Adobe CQ5 Canonical链接(Get Current Page Url In Adobe CQ5 for Canonical Link)

${currentPage.path}变量会为您提供父页面到当前资源的路径,但您应该使用Externalizer将其设置为一个很好的面向用户的URL(即应用您已有的映射规则) &使用正确的域名,而不是服务器名称,例如prod-server-123 ) 即 ResourceResolver resourceResolver = request.getResourceResolver(); Externalizer externalizer = resourceResolver.adaptTo(Ext ...

无法将图像从Flex上传到CQ5 DAM(having trouble uploading images from Flex to CQ5 DAM)

如果通过浏览器从DAM管理页面上传到5.4.0实例,我建议分析它所做的HTTP请求,以便从Flex客户端重现相同的请求。 5.4.0和5.5.0 HTTP API之间可能存在细微差别,这可以解释这一点。 If uploading from the DAM admin page via a browser works on the 5.4.0 instance, I would suggest analysing the HTTP request that this makes, to reprod ...

CQ5中的Restful URL(Restful URL in CQ5)

那么您的要求是在没有查询字符串的“产品”页面的单个实例上显示动态类别和产品信息? apache sling url分解描述包含两种非常简单的方法来解决这个问题。 选择器或后缀路径。 这两种方法都可以包含动态数据的标识符。 使用选择器来标识类别和产品ID /名称,此方法的URL方案如下所示。 /products.[dynamicCategory].[dynamicProductName].html 使用后缀路径,URL方案将如下所示: /products.html/[dynamicCategory ...

相关文章

更多

最新问答

更多
  • 如何从远程文件拉取文件而不覆盖本地文件?(How do I pull files from remote without overwriting local files?)
  • Reactjs:状态改变时重新渲染iframe(Reactjs: re-renders iframes when state changed)
  • 奇怪的网址,以及跟随php页面流程的困难(odd url, and difficulty in following the php page flow)
  • 标签活动无效(Tab Activity is not working)
  • JavaME合适的语法编译器建议?(JavaME-suitable grammar compiler recommendations?)
  • 指定参数(Specifying arguments)
  • 可以通过Ruby插件或控制台覆盖Sketchup中的键盘快捷键吗?(Can one override keyboard shortcuts in Sketchup through the a Ruby Plugin or Console?)
  • 计算Java EE Web App中用户数的最佳方法(Best way to count number of users in a Java EE web App)
  • 无法使用templateUrl加载cordova中的外部模板(unable to load external templates in cordova with templateUrl)
  • PHPExcel:写入期间无法使用缓存(PHPExcel: Unable to use cache during write)
  • 在javascript中嵌套这个指针(nested this pointer in javascript)
  • 谁跟领航致远培训过,有问题问下啊
  • 控制器要求在入门时下载(Controller ask to download on entry)
  • 未能通过conda安装Asyncio(Failure to install Asyncio via conda)
  • 如何查找已完成项目的总长度?(How to find length of total completed items?)
  • 如何检查OleInitialize是否已被调用?(How to check if OleInitialize has already been called?)
  • SQL在特定范围内返回列中具有最大值的行(SQL Returning rows with max value in column, within a specific range)
  • preg_match从url获取id(preg_match get the id from url)
  • 如何在运算符中为make方程转换perl变量?(How to convert a perl variable in a operator for make equations?)
  • 在导航上方添加空格/标题。(Add a white space/ header above navigation.)
  • MeetingItem已保存;(MeetingItem saved; but change now shown in Calendar)
  • c#vb:我们应该使用System.Lazy进行资源密集型任务吗?(c# vb: Should we use System.Lazy for resource-intensive task? (when threading is not needed))
  • 为什么在armeabi代码中使用armeabi-v7a代码?(Why use armeabi-v7a code over armeabi code?)
  • 获取请求的自定义标头(Java HTTP)(Fetching a custom header of a request (Java HTTP))
  • 是否可以在嵌套的if语句中从varchar转换为numeric以动态评估参数?(Is it possible to convert from varchar to numeric within a nested if statement in order to dynamically evaluate a parameter?)
  • 如何将Html.ActionLink转换为链接到Ajax调用的按钮?(How to convert from Html.ActionLink to a button linked to Ajax call?)
  • 应用程序如何处理Windows符号链接?(How are Windows symbolic links treated by the apps?)
  • html,js,css在jsfiddle中工作,但不在sharepoint中(html, js, css works in jsfiddle but not in sharepoint)
  • 从Ruby脚本调用Elasticsearch Rest API(Calling Elasticsearch Rest API from Ruby script)
  • 如何将嵌套setTimeouts转换为承诺(How to convert nested setTimeouts to promises)