我在 XPage 中有一个奇怪的行为,带有注释代码。
我有一个包含大量代码的文本字段,它在我遇到这个问题的地方输出 html。在开发过程中,我在其他字段的某些字段上遇到了很多麻烦,因此我决定 - 为了更好地了解该字段正在做什么 - 将代码从故障字段复制到我的文本字段内的注释中,以便让其他代码出现在我的视线中。但是在我发现问题之前,xPage 开始表现得很奇怪。
下面的代码是导致我的问题的一个示例,它有两个文本字段,其中一个设置范围变量,还有一个设置相同变量但已注释的注释,另一个显示 ScopeVar。我以为这会在第二个文本框中输出“我在哪里”,但我得到了“呼呼我在这里”。
<xp:text escape="true" id="computedField7">
<xp:this.value><![CDATA[#{javascript://
sessionScope.put("findme","where i am");
/* #{javascript:sessionScope.put("findme","HuHu I am here!");} */
return sessionScope.findme;}]]></xp:this.value>
</xp:text>
<xp:br></xp:br>
<xp:text escape="true" id="computedField6"
value="#{javascript:return sessionScope.findme;}">
</xp:text>
在我遇到此问题的原始代码中,我想将旧的#{} el 注释掉以使用 JavaScript,但将 el 保留在代码中间的注释中。结果相同。如果您在评论中使用 #{ 或 ${ ,它将始终被计算!
在注释 9 中解决了这个问题。我目前使用的是 8.5.3。
更新:
作为一个小提示:使用 dojoAttribute queryExpr 时要小心,因为查询看起来像 SSJS"${0}"
并且也被解释为 SSJS。我现在使用这个:
<xe:this.queryExpr><![CDATA[${javascript:"*$\{0}*";}]]></xe:this.queryExpr>
让它工作。感谢Paul Stephen Withers提供的\{
.