2011-01-08 12 views
0

JSFマネージドBeanの値を単純なBeanに保存してJSPページにアクセスできる方法はありますか?JSFとJSP bean通信

答えて

1

ページ、リクエスト、セッション、またはアプリケーションスコープに追加するBeanはすべて、JSPで使用できます。サーバー側にコンポーネントを追加するだけで、それらのスコープにアクセスして追加することができます。あなたがプログラムでJSF管理対象Beanから値が必要な場合は

1

は、あなたはこのようなものを使用することができます。

FacesContext context = FacesContext.getCurrentInstance(); 
ELContext elContext = context.getELContext(); 

ValueExpression ve = context.getApplication().getExpressionFactory().createValueExpression(elContext, expresssion, Foo.class); 
Foo foo = (Foo) ve.getValue(elContext); 

式は#{myBean.someValue}のようなものがあります。

このfooは、任意のスコープに格納できる他のBeanに格納することも、fooをあるスコープに直接格納することもできます。

もちろん、上記のコードフラグメントは、JSFコンテキストのままで実行する必要があります。 JSPページがJSFコンテキスト内で実行される場合は、もスクリプト・レットとしてJSPページにフラグメントを配置できます。これは非常に悪い習慣ですが、いくつかの素早いハックでは回避策になるかもしれません。