Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Aem 如何避免在CQ页面的所有链接中使用硬编码.html扩展?_Aem - Fatal编程技术网

Aem 如何避免在CQ页面的所有链接中使用硬编码.html扩展?

Aem 如何避免在CQ页面的所有链接中使用硬编码.html扩展?,aem,Aem,在我们的项目中,我们在相当多的对话框中有一个pathfield,用于引用/链接到页面的各种自定义组件。在jsp中获取该pathfield的值后,我们将在其上手动添加html扩展。 e、 g 如何避免对所有链接进行硬编码“.html”扩展,并从CQ自动将其附加到所有链接?我们有这方面的配置吗?或者我们需要创建任何实用程序吗?欢迎提出建议。请注意:解决方案必须适用于CQ 5.5。您可以创建自己的组件服务,在其中可以检查锚定标记(a标记)的属性href(或自定义属性)。如果链接引用的是相对/内部现

在我们的项目中,我们在相当多的对话框中有一个pathfield,用于引用/链接到页面的各种自定义组件。在jsp中获取该pathfield的值后,我们将在其上手动添加html扩展。 e、 g



如何避免对所有链接进行硬编码“.html”扩展,并从CQ自动将其附加到所有链接?我们有这方面的配置吗?或者我们需要创建任何实用程序吗?欢迎提出建议。请注意:解决方案必须适用于CQ 5.5。

您可以创建自己的组件服务,在其中可以检查锚定标记(a标记)的属性href(或自定义属性)。如果链接引用的是相对/内部现有路径,则可以通过添加.html扩展名(例如创建绝对链接)对其进行更改。可以找到一个示例实现。

路径字段xtype有一个名为linkpattern的配置选项。这允许您配置小部件,以便在使用browsefield选择链接时自动添加扩展。如果用户键入文本,则不会添加扩展名。使用此选项添加“.html”,所有内部链接都将附加.html(假设内容作者总是使用pathfield的浏览选项来选择链接[他们应该这样做])。这样,后端代码就不必负责检查链接是外部链接还是内部链接以及附加扩展

属性:“linkPattern”,值:“{0}.html”(字符串)


参考资料:

为什么会有这样的要求,你可以在其中输入带有html的作者输入。使用正则表达式验证输入必须以
.html
结尾。正如我在代码块中看到的,您只是在property ValueUpPosited中添加了
.html
,这应该可以工作,但我认为此要求无效。您为什么不认为此解决方案有效?问题是“如何避免在JSP中硬编码扩展”,而不是如何确保作者始终放置有效链接。除此之外,我不认为在pathfield中,您可能需要有人放置相对有效的链接,因为您希望路径位于末尾。假设您希望在后端使用此路径执行某些操作(例如检查资源是否存在),然后必须删除扩展。我是说,您提到的解决方案应该有效,请仔细阅读。抱歉,我误解了您的评论。你说的是问题中的要求……我试着添加类似的内容,但没有成功。我遗漏了什么吗?谢谢。因为这可以通过对话框配置以更简单的方式实现,所以我接受这个答案。谢谢莎拉斯。我想,如果我们想确保这适用于每个链接,而不仅仅是pathfield(如我的情况),那么创建Transformer服务的第二个解决方案更有意义。不幸的是,此功能在TouchUI
granite/ui/components/foundation/form/pathbrowser
备选方案中不再可用。我们是否可以对TouchUI字段、granite/ui/components/foundation/form/pathbrowser进行类似的限制
<a href="${properties.tab1_button1_Url}.html" target="_blank" class="btn gb-primary-btn-small aw">${properties.tab1_button1_Title}</a>