アプリケーション設定を保存する Notes ビューで Notes ドキュメントを管理するマネージド Bean をセットアップしたいと思います (たとえば、添付ファイルを保存するためのサーバー上のパス、アプリケーション タイトル、表示するロゴなど)。どのように使用すればよいですか?
現在、SSJS ライブラリをロードして、すべてをアプリケーション スコープまたはセッション スコープ変数に配置します。
アプリケーション設定を保存する Notes ビューで Notes ドキュメントを管理するマネージド Bean をセットアップしたいと思います (たとえば、添付ファイルを保存するためのサーバー上のパス、アプリケーション タイトル、表示するロゴなど)。どのように使用すればよいですか?
現在、SSJS ライブラリをロードして、すべてをアプリケーション スコープまたはセッション スコープ変数に配置します。
このようなマネージド 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 の高度なバージョンを開発するための良い出発点となるはずです。
アプリケーション スコープの Bean は、間違いなくこれに適した方法です。Java に慣れてきたら、代わりに VariableResolver を使用することを検討するか、これらのオプションの一部がサーバー全体である場合は OSGi プラグインを使用することを検討することをお勧めします。xsp.properties から値を取得するための XSnippet も投稿しました。 -notes.ini