1

1 つのクラスと、そのクラスにバインドされた 1 つの computeField を持つ 1 つの xPage を持つ単純なアプリケーションがあります。クラス getter の結果を Bean として表示したい。うまくいきません。私のクラスは次のようになります。

package test.test;

public class Test {
    public Test() {
    }

    public String getTest() {
        return "Test";
    }
}

計算フィールドの SSJS:

var test = new test.test.Test();
return test.getTest();

エラーは次のようになります。

Error while executing JavaScript computed expression
Script interpreter error, line=1, col=17: 'test' is undefined

1: var test = new test.test.Test();

設定がありませんか?前もってありがとう、ジクラ

編集: マネージド Bean を使用する場合、問題はまったく同じです。Designer/Eclipse IDE に問題があるはずです。明日再インストールしてみます。

EDIT2: 今日、大学のコンピューターで同じことをしようとしましたが、同じエラーです。したがって、問題は私の IDE にはありません。私は何かが欠けているに違いない。サーバーまたは IDE に外部ライブラリをインストールする必要がありますか?

4

7 に答える 7

2

わかりました私は次のことをしました。

1) 新しい Java クラスを作成しました。

ここに画像の説明を入力

2) クラスに次のコードを挿入します。

package test.test;

public class Test implements java.io.Serializable {

    public Test() {
        super();
    }

    public String getTest() {
        return "Test";
    }

}

3) 次のソースを使用して XPage を作成しました。

<?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">
    <xp:text escape="true" id="computedField1">
        <xp:this.value><![CDATA[#{javascript:var t:test.test.Test = new     test.test.Test();

return t.getTest();
}]]></xp:this.value>
    </xp:text>
</xp:view>

ブラウザで開くと、「Test」という単語が表示されました。

変数「t」を「test」に変更すると、失敗しました。したがって、変数名が問題のようです。

[編集]

8.5.2 を使用しているというコメントに基づいて、コード/Java 機能は Notes/Domino 8.5.3 まで到着しませんでした。それがあなたのために働いていない理由です。

于 2012-11-30T13:14:52.300 に答える
1

パッケージ名を変更した後、Java と XPage がビルドされていることを確認してください。たとえば、print("new XPage")SSJS とSystem.out.println("new Java")Java に a を追加します。

あなたのコードと 8.5.3FP3 Designer+Server で問題を再現できます。パッケージ名をtest.tesに変更すると、問題はなくなります。

編集:変数名「t」を常に使用しましたが、変数名を「test」に変更すると、サイモンが以下で見つけたように問題が発生することを確認できます。test.test.Test変数名「t」では機能しないため、Simon は別の Desiger/Domino バージョンを使用している可能性があります。

EDIT2: 8.5.2 サーバーで 8.5.3 Designer を使用しているようです。Simon が言ったように、Code/Java は 8.5.3 で導入されました。8.5.2 用の Java の作成手順は、たとえば次の場所にあります: http://xpageswiki.com/web/youatnotes/wiki-xpages.nsf/dx/Work_with_Java

于 2012-11-30T12:37:31.557 に答える
1

SSJS (テスト) の変数名がパッケージ名と競合しています。使用する

var test1=new test.test.Test();

それが動作します...

于 2012-11-29T21:04:26.287 に答える
1

おそらくビルドの問題。確認してください...

1)コードをビルドし、クリーンアップしてビルドしてみてください。

2) 正しいビルド パスを用意する - 設定ダイアログで確認できます。

3) Test.class ファイルを、できれば Java パースペクティブのナビゲーター ビューで見つけることができます。

于 2012-11-29T23:12:05.813 に答える
0

新しいステートメントを入れるのを忘れました。

var test = new test.test.Test();
于 2012-11-29T18:00:37.187 に答える
0

SSJS で Java クラスを初期化する際、コードは次のようになります。

var testObj:test.test.Test = new test.test.Test();
于 2012-11-29T17:17:20.693 に答える
0

これが問題かどうかはわかりませんが、getTest() を使用して値を取得するには、Bean で String 型の変数「テスト」を定義する必要があると思います。

于 2012-11-30T09:16:20.083 に答える