我有一个带有以下代码的自定义控件:
<?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)不适用于参数(Object)
在SideMenuPageLink.java(我的自定义控件)上
如何将链接的参数从Xpage传递到自定义控件?
答案 0 :(得分:2)
似乎参数必须一个接一个地传递,而不是作为单个对象传递。 您可能想尝试以下对我有用的代码:
<?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:纠正错字