重复控件中的自定义属性停止工作

时间:2014-09-09 11:52:47

标签: xpages xpages-ssjs

我有一个可以重复的奇怪的错误,但我无法找出导致它的原因。 如果我调用此xpage,我会收到以下错误消息:

执行JavaScript计算表达式时出错

找不到'fieldname'

<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core"
xmlns:xe="http://www.ibm.com/xsp/coreex"
xmlns:xc="http://www.ibm.com/xsp/custom">
<xp:this.data>
    <xp:dominoDocument var="Request"></xp:dominoDocument>
</xp:this.data>
<xp:repeat rows="999" var="fieldname">
    <xp:this.value><![CDATA[#{javascript:"myfieldname"}]]></xp:this.value>
    <xc:Widgets_Field
        field_datasource="#{javascript:currentDocument}"
        field_name="#{javascript:fieldname}">
    </xc:Widgets_Field>
</xp:repeat>

我试图清空cc,但没有成功。唯一可行的是当我要么对属性field_name进行硬编码,或者当我将重复控件设置为“在创建页面时创建控件”时

我绝对相信代码之前有效,但我无法找出导致错误消息的内容。如果你也遇到同样的问题,可以试试看,让我知道。

附上请参阅堆栈跟踪

com.ibm.xsp.exception.EvaluationExceptionEx: Error while executing JavaScript computed expression
com.ibm.xsp.binding.javascript.JavaScriptValueBinding.getValue(JavaScriptValueBinding.java:132)
com.ibm.xsp.page.compiled.ExpressionEvaluatorImpl.getBindingValue(ExpressionEvaluatorImpl.java:151)
xsp.Widgets_005fField$Widgets_005fFieldPage.createInputText4(Widgets_005fField.java:776)
xsp.Widgets_005fField$Widgets_005fFieldPage.createComponent(Widgets_005fField.java:142)
com.ibm.xsp.page.compiled.AbstractCompiledPage.buildComponent(AbstractCompiledPage.java:265)
com.ibm.xsp.page.compiled.CompiledComponentBuilder.buildChildren(CompiledComponentBuilder.java:115)
com.ibm.xsp.page.compiled.CompiledComponentBuilder.buildAll(CompiledComponentBuilder.java:84)

1 个答案:

答案 0 :(得分:3)

在自定义控件中,如果使用应在页面加载时知道的错误绑定,则会引发此类错误。例如,如果您的自定义控件包含“已加载”属性,如:

<xp:text
  loaded="${compositeData.field_name}">

这会引发这样的错误。这就是为什么它适用于“在页面创建时创建控件”设置。

更新:如果您要在自定义控件中使用动态绑定,请参阅此问题的答案:

Dynamic Data Binding?