如何为具有内联编辑的组件添加动态值?

时间:2016-07-22 01:23:24

标签: cq5 aem

如何为具有内联编辑的组件添加动态值?例如:我想添加“感谢下载软件(需要填充软件名称)”

1 个答案:

答案 0 :(得分:0)

如果必须使用内联编辑,

  1. 一种方法是实现HTML解析器sample here与逻辑模式匹配和替换的结合。在url中传递a key = token并使用i18n映射它以在解析HTML时获取要在令牌中替换的文本
  2. 示例网址 - > /path/to/thankyou_page.html?softwareName=download-mysoftware

    i18n key - >下载 - mysoftware和i18n翻译为 - >我的软件

    您的内联文字可能是 - “感谢您下载软件{softwareName}”

    你的正则表达式可能是 - "\\{(.*?)\\}",即花括号中的任何东西

    如果在解析html时正则表达式模式匹配,请识别模式中的键并检查它是否与url中的键匹配。如果它不匹配,则不执行任何渲染。但如果匹配则从请求参数中获取相应的值。对于该值,使用i18n库进行翻译并替换它。

    1. 查看您的要求的另一个视角是内联编辑是创作的一部分,但您需要的消息更多是发布要求。所以你可以做的是修改上面的方法,而不是使用HTML解析,使用SlingModel来替换令牌。