5

アプリケーション設定を保存する Notes ビューで Notes ドキュメントを管理するマネージド Bean をセットアップしたいと思います (たとえば、添付ファイルを保存するためのサーバー上のパス、アプリケーション タイトル、表示するロゴなど)。どのように使用すればよいですか?

現在、SSJS ライブラリをロードして、すべてをアプリケーション スコープまたはセッション スコープ変数に配置します。

4

2 に答える 2

13

このようなマネージド Bean の簡単な例を次に示します。

最初に Java クラスを作成します。私はそれを「構成」と呼んだ。ビュー「Config」で最初のドキュメントを読み取り、インスタンス化時 (=最初の呼び出し) に項目を Java フィールドに配置します。これを行うと、すべてのアイテムを読み取った後にドミノ オブジェクトをリサイクルし、値をメモリに保持できます。

package de.leonso;
import java.io.Serializable;
import lotus.domino.Database;
import lotus.domino.Document;
import lotus.domino.View;
import com.ibm.xsp.extlib.util.ExtLibUtil;

public class Config implements Serializable {
    private static final long serialVersionUID = 1L;    
    private String applicationTitle;
    // ... other private fields

    public Config() throws NotesException {
        Database db = ExtLibUtil.getCurrentSession().getCurrentDatabase();
        View view = db.getView("Config");
        Document doc = view.getFirstDocument();
        applicationTitle = doc.getItemValueString("ApplicationTitle");
        // ... read all other items and store them in private fields
        doc.recycle();
        view.recycle();
        db.recycle();
    }

    public String getApplicationTitle() {
        return applicationTitle;
    }

    // ... getters for other private fields

}

次に、faces-config.xml ファイルで、この Java クラスをマネージド Bean として定義します。

<faces-config>
  <managed-bean>
    <managed-bean-name>config</managed-bean-name>
    <managed-bean-class>de.leonso.Config</managed-bean-class>
    <managed-bean-scope>application</managed-bean-scope>
  </managed-bean>
</faces-config>

スコープとして「アプリケーション」(サーバーごとのインスタンス) または「セッション」(ユーザーごとのインスタンス) を使用できます。

次に、JavaScript で構成 Bean を使用できます。

#{javascript:var titel = config.applicationTitle; ...}

または式言語:

#{config.applicationTitle}

これは、構成 Bean の高度なバージョンを開発するための良い出発点となるはずです。

于 2013-06-09T16:28:03.040 に答える
0

アプリケーション スコープの Bean は、間違いなくこれに適した方法です。Java に慣れてきたら、代わりに VariableResolver を使用することを検討するか、これらのオプションの一部がサーバー全体である場合は OSGi プラグインを使用することを検討することをお勧めします。xsp.properties から値を取得するための XSnippet も投稿しました。 -notes.ini

于 2013-06-10T10:48:10.983 に答える