2012-03-01 12 views
1

iceface 1.7.2のプロジェクトをiceface 2.0.0に移行したいと思います。しかし、私はバインディングの問題に直面しています。プロジェクト全体は各UIコンポーネントごとにバインディングを使用し、古いバージョンではリクエストスコープを使用するためです。私がそれを移行したい場合、私はスコープBeanを表示するために要求スコープBeanを変換する必要があります。私がそうした場合、バインディングは機能しておらず、結果として望ましくない結果になります。ICEfaces 2.0.0 + Scope + Bindingの表示

私は、氷結1.7.2プロジェクトを氷結2.0.0に移行するためのソリューションを提案します。これは、バインディングやその他の方法でプロジェクトを移行することなく行われます。

さらに、ウィンドウまたはセッションスコープは、より多くのユーザーがWebページに同時にアクセスしている間に各ユーザーのメモリ領域を消費するため、有用ではありません。

+0

なぜバインディングが必要ですか? JSF 2.xには、コンポーネントをBeanにバインドする必要なく、いくつかの新しい方法があります。関連:タグハンドラで['@ ViewScoped'が失敗する](http://balusc.blogspot.com/2011/09/communication-in-jsf-20.html#ViewScopedFailsInTagHandlers) – BalusC

+0

古いバージョンのicefaceで使われていたすべてのコンポーネントは、バインディング属性を使用してそのコンポーネントに関連するすべてのことを行います.Yaバインディングなしでicefaces2.0およびjsf2.0 Webプロジェクトを作成するのは簡単です。しかし、私はicefaces1.7.2プロジェクトをiceface 2.0.0プロジェクトに移行する状況にあります。 jsf2.0とicefaces 2.0.0でプロジェクト全体を作ることができます。しかし、移行よりも時間がかかります。 – tgsankarbabu

答えて

2

JSF 2.0および2.1では、タイミングの問題が原因でコンポーネントのバインディングをビュースコープで使用できません。

コンポーネントツリーのビルド時にバインドが解決されますが、ビルド後にビューステートが適用されるまで、ビュースコープはアクティブになりません。

これはJSF 2.2で修正されていますが、まだリリースされていません。あなたが冒険を感じているなら、あなたは夜間のビルドを試すことができます。

+0

私はポイントを取得できません..私はjsf2.2リリースまで待つ必要がありますか?マイグレーションを行う他の方法はありますか? – tgsankarbabu

+0

idを使用してコンポーネントを検索するなどのバインディング属性を使用せずにビュースコープ付きBeanを作成する他の方法は何ですか(findComponent(FacesContext.getCurrentInstance()。getViewRoot()、 "componentID");)??) – tgsankarbabu

+0

ビュースコープおよびアクセスコンポーネントを使用する場合は、Idを参照するか、コンポーネントを個別の要求スコープBeanにバインドします。 ELをプログラム的に解決するか、要求属性を介してビューのスコープ内のBeanを取得します。 –

0

jsf 2.2がリリースされるまで、SessionBean ...を使用できます。