問題タブ [postconstruct]
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.
java - Weblogic10.3.4の@PostConstructアノテーションが呼び出されていない
(これはhttps://stackoverflow.com/questions/5862085/weblogic10-3-ignores-postconsturt-methodの複製のようですが、詳細がほとんどなく、回答されていません)。
私はこのようなManagedBeanを持っています:
そして私のxhtmlには、単純にBean Message: #{TestBean.greeting}
。ただし、ページにアクセスするときはメソッドが呼び出されず、取得するのは
期待される代わりに
getGreeting()
コンソールはメソッド からのsysoutを表示しますが、 prepareSomething()
:からは表示しません。
詳細情報:JSF 1.2(Weblogic 10.3.4のjarを使用MW_HOME/common/deployable-libs/jsf-1.2.war!/WEB-INF/lib
)、Facelets 1.1.14、RichFaces3.3.2を使用しています。私は次の瓶を持っていますWEB-INF/lib
:
annotations-api.jar
同じ症状で、配置/取り外しも試みました。
必要に応じて他のファイルを投稿する場合があります。
exception-handling - JSF PostConstruct 例外処理 - リダイレクト
別のページにリダイレクトして、JSF @PostConstruct 例外を処理したいと考えています。私はこれを使用しFacesContext.getCurrentInstance().getExternalContext().dispatch("page.jsf");
ていますが、ページは 2 つのバッキング Bean を使用しているため、他のバッキング Bean をロードし続けます (そして、他のバッキング Bean でエラーが発生した場合、そのディスパッチ/リダイレクトには到達しません)。私の質問は..そのディスパッチをすぐに発生させ、他のすべてをロードしないようにする方法はありますか?
jsf - ICEfaces 2.0およびh:commandButtonメソッドは呼び出されず、ice:commandButtonではすべて問題ありません
このコンポーネントを読んだので、画像のアップロードに使用しようとしています。ダウンロードを開始するにace:fileEntry
は、からの送信が必要です。h:commandButton
私の問題は、と切り替えるice:commandButton
とh:
、管理対象Bean(会話スコープ内にある)が再度作成され(@PostConstruct
呼び出され)、メソッドが呼び出されh:commandButton
なくfileEntryListener
なります。
これを引き起こしている可能性のある別の問題として、最初にページに入ると管理対象Beanが作成され、会話の開始を呼び出しますが、(からcommandLink
)2番目の要求を行うと、管理対象Beanが再度作成され、新しい会話が発生します。が開始され、その後、マネージドBeanが再度作成されないようにする時間を再生できます。
最初の質問に戻ります。ice:commandButton
マネージドBeanは、一緒にある場合は再度h:
作成されますが、再度作成されることはありません。
そして、もう少し楽しいことを追加するために、レンダリングされた属性(trueに解決される)をから削除するとace:fileEntry
、fileEntryListener
が呼び出されますが、からのアクションh:commandButton
は何があっても呼び出されません。
コンポーネントに明示的なIDを追加しようとしましたが、何も変更しようとしice:form
ませh:form
んでした。
助けてください。
追伸:ICEfaces 2がすべての氷のコンポーネントで機能しない理由、なぜそれが必要なのかh:commandButton
、代わりに、通常のリストに裏打ちされたice:commandButton
新しいJSF 2.0のものが機能しないのはなぜですか、f:selectItems
ice:selectOneMenu
h:selectOneMenu
?ICEfacesはどうしたの?そして、なぜCDIが期待どおりに機能しないのか、Seam 2でも、2回呼び出される会話で問題が発生しました..ps2:別のビューに移動しない?cid=1
と、URLに表示されません。
jsf - JSF 1.1 の @postConstruct
@postConstruct
JSF 1.2 以降と同様に、JSF 1.1 での動作をシミュレートするにはどうすればよいですか?
実際、ページの読み込み中に Bean メソッドを自動的に呼び出したいですか?
JSF 1.1 で IceFaces 1.8 を使用しています。
jsf - ManagedBean が jar ライブラリ内にある場合、@PostConstruct が JSF によって呼び出されませんでした
次の問題で実行しています。
現時点では、2 つの JSF アプリケーション間で共有されるマネージド Bean がいくつかあります。この 2 つのコードをコピーして貼り付けたくないので (今後さらに増やしていきます)、この共有マネージド Bean を JAR ライブラリ内に配置しました。このブログをフォローしました: http://jsflive.wordpress.com/2011/03/24/custom-component-library/
ええと、faces-config.xml を JAR/META-INF/ 内に配置しても、@ManagedBean と @ViewScoped は機能しませんでした。理由はわかりませんでしたが、faces-config.xml (WAR ではなく JAR) に Bean を登録すると、この問題はなくなります。
私はこれに耐えることができましたが、驚いたことに、JAR ライブラリ内のこのマネージド Bean に対して @PostConstruct アノテーションが呼び出されませんでした。エラー、警告などは表示されません。Bean はロードされていると思いますが、それらの注釈は処理されていません。
誰かがこれに直面しましたか?
私の環境: Glassfish 3.1.1 (ビルド 12) JSF 2.1.3
前もって感謝します。
jsf - ViewScopedBeanはすべてのリクエストで構築されます...パート99
ARGH ...これには100の答えがあるようですが、自分に合った答えが見つからなかったので、実際にもう一度質問したいと思います。これが私のシナリオです:
私のサイトには、技術的には、移動先の複数のページではなく、コンテンツがスワップアウトされる単一のページがあります。開始点は次のチャンクです。
resourceInclude.xhtmlには、私のcssファイルが含まれています。
そしてmain.xhtmlはビューです:
3つh:panelGroup
ので構成されています。1つ目は4つの一般的なナビゲーションリンクのセットであり、各リンクviewSelector.modeName
は2番目のコンテンツを含めるために使用される値を変更しh:panelGroup
ます<ui:include src="#{viewSelector.modeName}-view.xhtml" />
。この例ではこれを取り除いたので、各ビューは基本的に次のようになります。
3つ目h:panelGroup
は、何が問題になっているのかをデバッグするためのすべてのメッセージのフッターです。
とにかく、ナビゲーションリンクの1つをクリックするたびに、viewSelectorBeanのコンストラクターが呼び出されます。これは私のviewSelectorBeanがどのように見えるかです:
私は何か間違ったやり方をしているに違いないことを知っています。さもないと、JSFがどのように機能するかについて中心的な何かが欠けています。入力はありますか?
jsf - コア JSF から Seam への移行中のマネージド Bean の機能の移植
以前は、エンティティ オブジェクトの特定のプロパティを、jsf マネージド Bean (またはマネージド Bean のコンストラクター) の @PostConstruct メソッドでのインスタンス化と同じくらい早く、事前定義された値で初期化していました。マネージド Bean がなくなった状態でプロジェクトを Seam に移植すると、この機能を保持できなくなります (マネージド Bean なしの JSF 2.2 ではどのようになるのか疑問に思います)。
エンティティ クラス:
JSF マネージド Bean
JSFページ
Seam バージョンの Stateless Session Bean も jsf マネージド Bean の責任を負う
フォームの Seam バージョン:
インスタンス化されたときにタスク オブジェクトに日付とログイン ユーザー データ (できればデフォルト カテゴリ) を保持させる方法についてアドバイスが必要です。
jsf - 表示される前にh:selectOneMenuを初期化します
有効なユーザーを確認するアクセスページがあります。存在する場合は、次のページに移動して作成します。
typeOfUserに基づきます。したがって、ユーザーがタイプAの場合、オプションは次のようになります。
ユーザーがタイプBの場合、オプションは次のようになります。
それ以外の場合、オプションは次のようになります。
xhtmlページは次のとおりです。
@PostConstructメソッドでこれを達成できますか?またはより良い場所があります。
ありがとう !
ajax - JSF2 preRenderComponent は、f:ajax の実行時に常に呼び出されます
<f:event type="preRenderComponent" listener="#{newsBean.init}" />
Bean 初期化子として持つ NewsBean.java に裏打ちされた JSF ページがあります。
ページの下部にコメントを送信するためのボタンがあり
<f:ajax event="click" execute="@form" render="@form" listener="#{newsBean.sendComment}" />
ます<h:form>
。ボタンがクリックされると、NewsBean.init()
常に呼び出されます。
私のBeanスコープはビューです。これは有効な動作ですか (常に init() を呼び出します)? 常に呼び出すのを防ぐにはどうすればよいinit()
ですか?
jsf - @PostConstruct および commandButton/commandLink パラメータのケース
次のシナリオに共通のパターンがあるかどうか疑問に思っています。
1 つのリクエスト スコープ Bean でサポートされている 1 つの JSF ページがあるとします。ユーザーがこのページに入ったときに、データベース テーブルからすべてのデータ行を取得したいと考えています。同じ JSF ページには、クエリ基準を提供するためのフォームが含まれています。ユーザーがクエリ条件を指定してフォームを送信すると、結果も同じページに表示したいと考えています。
ページ エントリですべての行をフェッチするのに適した場所は @PostConstruct メソッドです。追加の (挿入された) 要求パラメーターは既にここで利用可能であり、クエリで使用できるため、これを行うのに適した場所です。ただし、フォームから送信されたパラメーターはまだ使用できません。これらはアクション メソッドでアクセスできます。
ユーザーがフォーム条件を使用してデータベース テーブルにクエリを実行すると、この場合、データベースは 2 回クエリされます。リクエスト スコープ Bean が再作成され、すべての行をフェッチする @PostConstruct メソッドが呼び出されてから、ユーザーが必要なものをフェッチするフォーム アクション メソッドが呼び出されます。
もちろん、アクション メソッドでのみ DB クエリを使用して、フォームの結果を別の Bean に基づく別の JSF ページにリダイレクトすることもできます。しかし、1 つの JSF ページと 1 つのマネージド Bean で必要なものだけを取得する方法はありますか?