0

XPageからJavaコードを呼び出そうとしていますが、SSJSを介してこれを行おうとしています。基本的なHelloWorldの例でさえも機能させようとしているだけです。理想的には、Javaコードからの戻り値を変数に詰め込むことができます。

目標:(Xpageの内容)

<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core">
    <xp:label value="#{javascript:helloWorld.anyoneThere}" id="label1"></xp:label>
</xp:view>

'Yo!'を出力します ページが読み込まれたとき。代わりに、helloWorldが見つからないというランタイムエラーが発生します。

パッケージを作成しました

package testBean;

public class helloWorld {
    public String anyoneThere(){
        return "Yo!";
    }
}

次に、faces-configファイルを変更しました

<?xml version="1.0" encoding="UTF-8"?>
<faces-config>
    <managed-bean>
        <managed-bean-name>helloWorld</managed-bean-name>
        <managed-bean-class>testBean</managed-bean-class>
        <managed-bean-scope>application</managed-bean-scope>
    </managed-bean>
</faces-config>

Java関数を初期化/呼び出すために何をする必要があるかわかりません。私が見たいくつかの例は、ビューにフックしたり、イベントに参加したりしていますが、私が行っていることの目的のコードは、beforePageLoadセクションで実行される可能性が高くなります。

4

2 に答える 2

6

managed-bean-classには、クラス名も含める必要があります。

<managed-bean-class>testBean.helloWorld</managed-bean-class>

また、ラベルには括弧を付ける必要があります

<xp:label value="#{javascript:helloWorld.anyoneThere();}" id="label1"></xp:label>
于 2012-08-08T23:25:46.723 に答える
2

XPagesを使用した単純なマネージドBeanの作成と使用の基本に関する小さなチュートリアルを作成しました。

このチュートリアルでは、変数にゲッターとセッターを追加して、ELを使用してそれらを参照できるようにする方法も示しています。したがって、あなたの例では、anyoneThere変数を参照するために次のことを行うことができます(ゲッターとセッターを設定していると仮定します)。

<xp:label value="#{helloWorld.anyoneThere}" id="label1"></xp:label>
于 2012-08-09T07:42:56.123 に答える