Передача параметров ссылки xp: через пользовательский элемент управления - PullRequest
0 голосов
/ 25 января 2019

У меня есть пользовательский элемент управления со следующим кодом:

<?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>

Это дерево определения свойств элемента управления:

Property definition of custom control

Я пытаюсь использовать пользовательский элемент управления следующим образом:

            <xc:sideMenuPageLink LinkLabel="Registration"
                linkPage="/Registration.xsp">
                <xc:this.parameters>
                    <xc:parameters name="id" value="new"></xc:parameters>
                </xc:this.parameters>
            </xc:sideMenuPageLink>

При создании приложения я получаю следующую ошибку:

Метод addParameter (Parameter) в типе UIOutputLink не применим для аргументов (Object)

на SideMenuPageLink.java (мой пользовательский элемент управления)

Как передать параметры ссылки со своей Xpage в пользовательский элемент управления?

1 Ответ

0 голосов
/ 28 января 2019

Кажется, что параметры должны передаваться один за другим, а не как один объект.Вы можете попробовать следующий код, который работает для меня:

<?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: исправлены опечатки

...