2016-11-16 14 views
1

は、DominoDocumentをManaged Beanに直接バインドすることができます。私はいつもDominoDocumentへの参照を保持している私のBeanのプロパティを持つことができますか?Xpage DominoDocumentをBeanにバインドする

提案/アドバイスを感謝します。

+1

非常に簡単にアクセスできるようにするには、変数リゾルバメソッド(最新の拡張ライブラリとJSFUtilのさまざまな実装にあります)を使用してcurrentDocumentオブジェクトを使用できます。 –

+0

これで2つのデータソースがあればどうなりますか? – MeMeMax

+1

"currentDocument"の代わりにデータソース名を使用することができます –

答えて

3

上記のとおり、必要な処理を実行する最も簡単な方法は、Beanのプロパティにバインドするのではなく、Beanのメソッドを使用してアクセスすることです。あなたが拡張ライブラリを使用することができない場合

public DominoDocument getDominoDocument() { 

    // Whatever the data source name is you want to get 
    String documentName = "document1"; 

    Object o = ExtLibUtil.resolveVariable(FacesContext.getCurrentInstance(), documentName); 

    // Double check that it is a DominoDocument 
    if (o instanceof DominoDocument) { 
     return (DominoDocument) o; 
    } 

    return null; 

} 

、その後、使用:

public DominoDocument getDominoDocument() { 

    // Whatever the data source name is you want to get 
    String documentName = "document1"; 

    // Get the VariableResolver for Current FacesContext and Resolve the variable 
    FacesContext facesContext = FacesContext.getCurrentInstance(); 
    VariableResolver resolver = facesContext.getApplication().getVariableResolver(); 
    Object o = resolver.resolveVariable(facesContext, documentName); 

    // Double check that it is a DominoDocument 
    if (o instanceof DominoDocument) { 
     return (DominoDocument) o; 
    } 

    return null; 

} 

データソースを使用して、データをバインドするのであれば、管理対象Beanの持続性にわずかに異なるメカニズムを使用して要求間で保持されています管理されたBeanプロパティへのソースは、アプリケーションがどのような持続モードで実行されているかによって複雑になる可能性があります。わかりませんが、大丈夫かもしれません。 また、複雑なデータソース< - > DataContainer < - >変数リゾルバが扱う方法を知っているDominoDocumentエコシステムがあります。したがって、変数リゾルバにアクセスする際には、変数リゾルバを経由するのが最も簡単です。

関連する問題