HTL AEM 条件或运算符问题
HTL AEM conditional OR operator issue
我希望能够使用“||”此上下文中的 OR 运算符
在模式中,如果字段中的值不是作者,我需要从 JCR 内容中提取两个日期
<script type="application/ld+json" >
"datePublished": "${properties.datePublishedArticle @context="html" ||'yyyy-MM-dd' @ format=currentPage.lastModified }",
"dateModified": "${properties.dateModifiedArticle @ context="html" || 'yyyy-MM-dd' @ format=currentPage.lastModified}"
</script>
org.apache.sling.api.scripting.ScriptEvaluationException:
mismatched input '@' expecting {'}', '.', 'in', '&&', '||', ',', '['} in line 67 where datepublished is located.
换句话说,如果作者没有创作值,它会从jcr内容中取值。单独完成时它们工作正常。
不明白提示的错误。
你试过这样使用它吗:
<script type="application/ld+json" >
"datePublished": "${properties.datePublishedArticle ||'yyyy-MM-dd' @ context="html", format = currentPage.lastModified }",
"dateModified": "${properties.dateModifiedArticle || 'yyyy-MM-dd' @ context="html", format = currentPage.lastModified}"
</script>
我认为错误的发生是因为您不应该在同一 HTL 语句中重复“@”块。
尽管@atgar 的解决方案没有引发错误,但我认为它没有按照作者的要求进行:输出创作日期或 JCR (lastModified
) 日期。
这样的东西更接近他的需要:
<script type="application/ld+json" >
"datePublished": "${'yyyy-MM-dd' @ context='html', format = (properties.datePublishedArticle ? properties.datePublishedArticle : currentPage.lastModified) }",
"dateModified": "${'yyyy-MM-dd' @ context='html', format = (properties.dateModifiedArticle ? properties.dateModifiedArticle : currentPage.lastModified)}"
</script>
请注意,使用HTL date formatting时,实际值应在format
选项中。
我希望能够使用“||”此上下文中的 OR 运算符
在模式中,如果字段中的值不是作者,我需要从 JCR 内容中提取两个日期
<script type="application/ld+json" >
"datePublished": "${properties.datePublishedArticle @context="html" ||'yyyy-MM-dd' @ format=currentPage.lastModified }",
"dateModified": "${properties.dateModifiedArticle @ context="html" || 'yyyy-MM-dd' @ format=currentPage.lastModified}"
</script>
org.apache.sling.api.scripting.ScriptEvaluationException:
mismatched input '@' expecting {'}', '.', 'in', '&&', '||', ',', '['} in line 67 where datepublished is located.
换句话说,如果作者没有创作值,它会从jcr内容中取值。单独完成时它们工作正常。 不明白提示的错误。
你试过这样使用它吗:
<script type="application/ld+json" >
"datePublished": "${properties.datePublishedArticle ||'yyyy-MM-dd' @ context="html", format = currentPage.lastModified }",
"dateModified": "${properties.dateModifiedArticle || 'yyyy-MM-dd' @ context="html", format = currentPage.lastModified}"
</script>
我认为错误的发生是因为您不应该在同一 HTL 语句中重复“@”块。
尽管@atgar 的解决方案没有引发错误,但我认为它没有按照作者的要求进行:输出创作日期或 JCR (lastModified
) 日期。
这样的东西更接近他的需要:
<script type="application/ld+json" >
"datePublished": "${'yyyy-MM-dd' @ context='html', format = (properties.datePublishedArticle ? properties.datePublishedArticle : currentPage.lastModified) }",
"dateModified": "${'yyyy-MM-dd' @ context='html', format = (properties.dateModifiedArticle ? properties.dateModifiedArticle : currentPage.lastModified)}"
</script>
请注意,使用HTL date formatting时,实际值应在format
选项中。