問題タブ [facescontext]

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.

0 投票する
1 に答える
494 参照

jsf - JSFのある面のコンテキストから別の面のコンテキストにメッセージを送信することは可能ですか?

私は関数FacesContext.addMessage()について知っています。ただし、別のウィンドウにいるなど、現在別の顔のコンテキストにいる場合はどうなりますか。

現在のセッションに保存されている他のFacesContextオブジェクトへの参照を取得する方法はありますか?

基本的に、ポップアップウィンドウから親にメッセージを送信したいのですが、親のFacesContextオブジェクトへの参照がありません。

0 投票する
1 に答える
217 参照

jsf - FacesContextは1つのWebアプリケーションに制限されていますか?

私は耳、Sample.ear、2つのwarファイルと1つのjarファイルを持っていますそれはこのようなものです

UI1.warで定義されたマネージドBean(バッキングBean)があります。UI2.war内のjsfページでその特定のマネージドBeanにアクセスすることは可能ですか?

UI2.warで#{LoginBean.username}(LoginBeanはアクセスしたいUI1.war内のマネージドBeanです)のように取得するのに疲れましたが、FacesContextはこれを解決できません。

plsヘルプ

ありがとうJ

0 投票する
2 に答える
2424 参照

ajax - JSF 2 部分リクエストは、ファクトリの FacesContext を使用しません

FacesContextFactory部分的なリクエストは、実装によって作成された顔のコンテキスト インスタンスを使用していないようです。

UIViewRoot#processDecodes同じことを示すコードは次のとおりです

PartialViewContext は、デフォルトの FacesContextImpl 実装を内部に格納し、それを使用してライフサイクル メソッドを呼び出すようです。(processPartial メソッドは、内部に保存された独自のコンテキスト オブジェクトを使用するため、コンテキスト オブジェクトを使用しないことに注意してください)

これはバグですか、それとも特定の理由でそこにあるこのコードですか?

ありがとう

0 投票する
4 に答える
42155 参照

jsf - FacesContextは何に使用されますか?

何にFacesContext使われますか?

そして、それは正確にどこに実装されていますか?

0 投票する
2 に答える
11927 参照

jsf - FacesContext が見つかりません

私のjspページは: Home.jsp

私の web.xml ファイル:

私が得た例外:

0 投票する
0 に答える
171 参照

java - 現在接続しているすべてのユーザーのリストを取得する

重複の可能性:
JSF J_security_check 接続ユーザー数とその役割を取得するには?

この行が、JSF 2 アプリケーションで現在ログインしているユーザーを取得することを処理することは既に知っています。

Web JSF 2 アプリケーションに現在ログインしているすべてのユーザーのリストを取得する方法はありますか?

前もって感謝します...

0 投票する
2 に答える
363 参照

websphere-portal - ポータル アプリケーションで FacesContext にアクセスする

PortletRequestポータル アプリケーションから特定の情報を取得する必要があります。これは、ポートレット アプリケーション内のユーティリティ メソッドを使用して行います。この Utility メソッドではFacesContext.getCurrentInstance().getRequest()、PortletRequest を取得するためにアクセスします。DAO レイヤーでこの Utility メソッドにアクセスします。ここではリクエスト パラメータにアクセスできません。時々うまくいきますが、時々私に与えますNullPointerException。これについて説明する同様のスレッドを見つけました。彼らは、それが同じリクエストの一部である場合、コンテキストを取得する必要があると述べています。私にとっては、同じリクエストの一部ですが、コンテキストがわかりません。手伝ってくれませんか。

0 投票する
1 に答える
1786 参照

java - seam 内の facecontext と uicomponent のモック

次のメソッドの単体テストを seam に記述しようとしています。これを行うには、facesContext と UIComponent の両方をモックして、メソッド getAsObject に渡す必要があります。

Jmock と seam を使用してみましたが、問題が発生しました。助言がありますか?

jMock の使用中に遭遇した問題。

org.jboss.seam.mock.MockFacesContextを使用して seam の方法を試しまし たが、..
facesContext = new MockFacesContext(this.externalContext, this.application);コンパイル エラーが発生します

私は何かがひどく欠けているかもしれません.適切なオンラインの例を見つけてください.

以下は私のテストコードです..

0 投票する
1 に答える
5900 参照

jsf - 実際の Web アプリケーションの外部で単体テスト用の ViewMap を使用して JSF FacesContext をモックするにはどうすればよいですか?

編集:読みやすくするために質問を整理しました。10月31日までのコメントは無視してください。

私たちのアプリケーション スタックでは、最終的な Web アプリケーションに結合される多くの小さな jar モジュールを操作します。1 つのモジュールは、このViewScopeの実装など、JSF 機能を定義します。

統合テストとは別に、すべての部分を単体テストできるようにしたいので、完全な Faces Context (ラッパー経由でアクセス) をモックして、それを使用するクラスをテストする方法が必要です。

ここで重要な部分は、オブジェクトを配置する場所であるため、初期化する必要があるという完全な意味です。ViewMapViewScope


私はさまざまなアプローチを試しました:

1) shale-test : 私はこれで最も遠くまで来ましたが、残念ながらプロジェクトは廃止されました。

これまでのところ、FacesContext を Provider でラップして、テスト用に Mocked FacesContext に置き換えることができました。また、AbstractViewControllerTestCase のシェール実装を変更して、アプリケーション コンテキストを含めました。

MockedFacesContext.getViewRoot().getViewMap()ただし、 as this を呼び出すと、 UnsupportedOperationException. 理由は、MockApplication が、このメソッド呼び出しに必要な Application.defaultApplication (null) をインスタンス化していないためと思われます。これはシェールテストの制限のようです。


2)JMockまたはmockitoほとんどのメンバーはnullのままであるため、これらは実際には何もモックしていないように思えます。JMock または mockito が実際に適切な初期化メソッドを呼び出すことができるかどうかはわかりません。


3) カスタム Faces Mocker:私には、これが唯一残っているオプションのように思えますが、Faces がどのように初期化されているかを分析し、モックの目的で動作を再現する時間がありません。多分誰かがこれまでにこれをしたことがなく、主要なウェイポイントと落とし穴を共有できますか?


または、Web アプリケーションの外部で FacesContext をモックする別の方法はありますか?

0 投票する
1 に答える
970 参照

multithreading - スレッドから FacesContext にアクセスする

私の JSF アプリでは、別のスレッドから FacesMessage を表示する必要があります。ドキュメントによると、それは不可能です。しかし、そうするためのトリックがあるかもしれませんか?したくないことを行う別の方法がわかりません:(