問題タブ [view-scope]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
spring - カスタム ViewScope を使用したマネージド Bean
Spring 3.1.0.RELEASE、JSF 2.x、JPA 2 と Hibernate Provider を使用して Web アプリケーションを実行しています。わかりやすい URL には PrettyFaces 3.3.2 を使用します。アプリケーションは Tomcat 6.35 で実行されます。
Jsf ViewScope を使用したかったので、Web で見つかった実装に従うことにしました: http://comdynamics.net/blog/109/spring3-jsf2-view-scope/
@PreDestroy
show this question @PreDestroy never called on @ViewScopedのように、それらが呼び出されていないことに気付きました。
ViewScope を持つ Managed Bean は destruct されないということですか? メモリリークを行う行為。このスコープを使用する必要がありますか?
Spring または Mojarra のカスタム Viewscope でのみ発生しますか?
ありがとう。
jsf - JSF 2.2 @ViewScopedバインディングのバグ?
@ViewScoped(BUG REPORT)のバインディングバグについて読み、JSFの最新バージョンの1つで修正されたので、これをJSFの最新バージョン3つでテストし、
それを解決するために修正しますが、運がありません。
各列ヘッダーにフィルターがあるprimefacesデータテーブルがあります。
JSFのバージョンを変更する前は、[Filtrar]ボタンをクリックするたびに、cadastroClienteBeanの新しいインスタンスが作成されていました。変更したので、ManagedBeanが毎回インスタンス化されているわけではないようですが、コンストラクターでインスタンス化しても、cliente変数はnullになります。
編集:少しデバッグした後、フィルターの値が変数に設定されており、その直後にsetCliente()が呼び出されてnullに設定されていることがわかりましたが、理由はわかりません。
jsf-2 - ManagedProperty のシリアル化
JSF の@ViewScoped
and@ManagedProperty
には次の問題がありManagedBean
ます。基本的に次のような があります。
と
予想どおり、要求が処理された後、コントローラーはシリアル化されます。@ManagedProperty
sessionConfig
はシリアライズで特別に処理されること、特にデシリアライズ後に「再リンク」されることを期待していました。ただし、デシリアライズ後sessionConfig
は、実際の SessionConfig-Bean の古いクローンにすぎないことがわかります。
質問:
- これは予想される動作ですか?
@ManagedProperty
デシリアライゼーション後にJSF を再評価させるにはどうすればよいでしょうか?
現在、デシリアライズ後にすべての管理プロパティを「手動で」再評価しています。それは機能しますが、明らかに正しくないようです。
ありがとうございました!
jsf-2 - @ManagedBean で @Interceptor を使用する
CDI による傍受は @Named では完全に機能しますが、@ManagedBean では機能しません。
Logable.java
LoggingInterceptor.java
WorkingBean.java
ビーンズ.xml
ViewScopedBean.java
この種のインターセプターは WebBeans (および EJB) で動作するように意図されていることは承知していますが、同じインターセプターの概念を持つ両方の世界 (記述 + JSF)のソリューションを探しています @ViewScoped @ManagedBean が必要です。純粋な WebBeans を支持して @ManagedBean を取り除くことはできません
システム: Mojarra 2.1.7 Primefaces 3.2
jsf - コンバーターは @ViewScoped では機能しません
コンバーターで問題に直面しています。私の xhtml ファイルには、オブジェクトのリストを含む selectOneMenu があり、managedBean にオブジェクトを設定したいと考えています。
マネージド Bean に @SessionScoped がある場合、マネージド Bean のオブジェクトは満たされますが、マネージド Bean に @ViewScoped がある場合、コンバーターは使用されず、オブジェクトは null です。
この問題を解決するには?
Xhtml :
typConverter :
たくさん送信
java - ビューが表示または変更された後にコードを実行します
さまざまなビューを指すアイテムを含むメニューがあります。
各ビューには、リスナーが接続された選択コンボボックスがあります。
そのビューでは、セッションスコープのマネージドBeanを使用します。
初めてビューに移動すると、Beanの作成時にメソッドが呼び出されます。ユーザーが選択ボックスから値を変更すると、同じメソッドが呼び出されます。ただし、ビューが再表示されたときにメソッドは呼び出されません。
これは、セッションスコープのBeanを使用しているために発生します。より良い解決策は、代わりにビュースコープのBeanを使用することでしたが、私は別の方法を探しています。ビューが変更されたときに特定のコードを実行する方法はありますか?
primefaces - @ViewScoped Bean および s:viewAction を使用した primefaces fileUpload
JBoss 7.1.1.Final、Seam 3.1、CDI、JSF 2、Primefaces 3.4RC1 を使用しています。次の s:viewAction を持つページがあります。
entryActionManager は @ViewScoped であるため、ページが読み込まれると、entryId GET パラメータが取得され、対応するエントリがこの @ViewScoped Bean に読み込まれます。
さらに、同じページに次の fileUpload コンポーネントがあります。
ファイルをアップロードしたい場合、@ViewScoped Bean が停止し、s:viewAction が再度実行されることがわかりました。ただし、何らかの理由で GET パラメーター (entryId) がなくなったため、失敗します。
私は設定しようとしました:
しかし、うまくいきません。これに対する回避策を知っていますか?1 つのオプションは @ConversationScoped を使用することですが、@ViewScoped を使用することをお勧めします
ありがとう
jsf-2 - ViewScoped Bean でのメモリ リーク?
JBoss 7.1.1上の JavaEE6プロジェクト ( EJB3、JSF2 )では、SeamFacesでメモリ リークが発生しているようです。@ViewScoped
事実を確認するために小さなプロトタイプを作成しました。
- JMeter を使用してページを 200 回呼び出します。
- ページには、ステートフル EJB を注入する viewscoped Bean が含まれており、それを呼び出します。
- セッション タイムアウトを 1 分に固定します。
テストの最後に、VisualVM を使用してメモリの内容を確認すると、次の結果が得られました。
- Bean を使用し
@ViewScoped
ても、ステートフルの 200 のインスタンスを取得できますMyController
。@PreDestroy
メソッドは呼び出されません。 @ConversationScoped
Bean を使用すると、@preDestroy
メソッドがセッション終了と呼ばれ、クリーンなメモリが得られます。
ビュースコープの使い方が悪いのか、それとも本当にバグなのか?
XHTML ページは次のとおりです。
今含まれている Bean myBean
。バリアントの場合@ConversationScoped
、コメント化されたすべての部分はコメント化されていません。
そして、注入されたステートフル Bean MyController
:
param - 1 つの Bean から f:param で値を渡すと、Bean 2 のコマンドボタンが押されたときに値が失われます
両方の Bean で ViewScope を使用すると、commandLink を介して f:param を使用して、1 つの Bean (browseUsers) から別の Bean に値を渡しますが、bean 2 (editUsers) では、コンストラクターでコマンド ボタンが押されると、すべての値が失われます。お知らせ下さい。
browseUsers.xhtml のコマンドリンクとデータテーブル コード:
editUsers.xhtml のコマンド ボタン コードは次のとおりです。
editUsers.java の Bean メソッドは次のとおりです。
@ViewScoped
public class editUsers は Serializable を実装します {