Xpages 通过自定义控件传递xp:link参数
我有一个自定义控件,其代码如下:Xpages 通过自定义控件传递xp:link参数,xpages,lotus-domino,Xpages,Lotus Domino,我有一个自定义控件,其代码如下: <?xml version="1.0" encoding="UTF-8"?> <xp:view xmlns:xp="http://www.ibm.com/xsp/core"> <xp:panel tagName="li"> <xp:this.styleClass><![CDATA[${javascript:@If(view.getPageName().equals(compositeD
<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core">
<xp:panel tagName="li">
<xp:this.styleClass><![CDATA[${javascript:@If(view.getPageName().equals(compositeData.linkPage), "active", "")}]]></xp:this.styleClass>
<xp:link escape="true"
text="${javascript:compositeData.LinkLabel}"
value="${javascript:compositeData.linkPage}"
parameters="${javascript:compositeData.parameters}">
</xp:link>
</xp:panel>
</xp:view>
这是控件的属性定义树:
我尝试像这样使用自定义控件:
<xc:sideMenuPageLink LinkLabel="Registration"
linkPage="/Registration.xsp">
<xc:this.parameters>
<xc:parameters name="id" value="new"></xc:parameters>
</xc:this.parameters>
</xc:sideMenuPageLink>
构建应用程序时,出现以下错误:
UIOutputLink类型中的方法addParameter(Parameter)不适用于参数(对象)
on SideMenuPageLink.java(我的自定义控件)
如何将链接的参数从我的Xpage传递到自定义控件?似乎必须逐个传递参数,而不是作为单个对象。 您可能需要尝试以下代码,这对我很有用:
<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core">
<xp:panel tagName="li">
<xp:this.styleClass><! [CDATA[${javascript:@If(view.getPageName().equals(compositeData.linkPage), "active", "")}]]></xp:this.styleClass>
<xp:link escape="true"
text="${compositeData.LinkLabel}"
value="${compositeData.linkPage}">
<xp:this.parameters>
<xp:parameter
name="${compositeData.parameters.name}"
value="${compositeData.parameters.value}">
</xp:parameter>
</xp:this.parameters>
</xp:link>
</xp:panel>
</xp:view>
编辑2019-01-30:更正的打字错误似乎必须逐个传递参数,而不是作为单个对象。 您可能需要尝试以下代码,这对我很有用:
<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core">
<xp:panel tagName="li">
<xp:this.styleClass><! [CDATA[${javascript:@If(view.getPageName().equals(compositeData.linkPage), "active", "")}]]></xp:this.styleClass>
<xp:link escape="true"
text="${compositeData.LinkLabel}"
value="${compositeData.linkPage}">
<xp:this.parameters>
<xp:parameter
name="${compositeData.parameters.name}"
value="${compositeData.parameters.value}">
</xp:parameter>
</xp:this.parameters>
</xp:link>
</xp:panel>
</xp:view>
编辑2019-01-30:更正的打字错误自定义控件定义中“参数”参数的类型是什么?“参数”是一个包含“名称”和“值”的组,两个字符串。我认为我无法将类型分配给组。自定义控件定义中“parameters”参数的类型是什么?“parameters”是包含“name”和“value”两个字符串的组。我认为我无法为组分配类型。很抱歉响应太晚。因为我不知道前面的参数数量,所以我需要能够将参数数组传递给链接。您的答案仅适用于一个参数。很抱歉响应太晚。因为我不知道前面的参数数量,所以我需要能够将参数数组传递给链接。您的答案仅适用于一个参数。