問題タブ [composite-component]

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 に答える
2462 参照

jsf - JSF は、コンポーネント宣言用のカスタム名前空間を定義します

JSF ページで外部ライブラリ (またはカスタム コンポーネント) のコンポーネントを使用する場合は、次のように xmlns 宣言を追加します。

xmlns:util="http://java.sun.com/jsf/composite/component/util

以下のように、Namaspace でプライベート アドレスを使用するにはどうすればよいかを知りたいです。

xmlns:p=" http://primefaces.prime.com.tr /ui"

それはパッケージに関連するものですか?それとも、コンポーネントを含む .JAR の名前に依存しますか?

ありがとうございました!

0 投票する
3 に答える
1674 参照

java - JSF 2.0:リクエストスコープのBeanを使用して初期データでフォームフィールドをレンダリングします(現在のコンポーネントに固有のサーバーデータを更新するため)

かなり普通のケース:

拡張と折りたたみの2つの状態を持つ「ポートレット」複合コンポーネントがあります。ポートレットは展開された状態で開始されますが、ユーザーはそれらをクリックして折りたたむことができます。この状態はセッションに保存する必要があります。これにより、ユーザーがページを更新するか、新しいページに移動すると、ポートレットは展開/折りたたみされているかどうかを記憶します。

これが問題の核心です。ページに複数回挿入できるこのような状態保存をコンポーネントに実際にどのように実装しますか?

いくつかの背景/アイデア:

1つのポートレットに状態保存を実装するには、セッションスコープのBeanを使用することで簡単に実現できます。また、固定数のセッションスコープBeanを作成するか、1つのBeanに異なるプロパティを宣言することで、固定数のポートレットをサポートできます。しかし、なぜそれらのアプローチが悪いのかについても言及したくありません。

これについての私の最初のアイデアは、すべてのポートレットの状態を保持するために、単一のセッションBeanの下にマップ(またはいくつかのオブジェクト構造)を作成することでした。ただし、JSFからこのデータを直接参照することはできません(JSFもそれらを更新するため)。マップ内の正しい値をフェッチ/更新するために特定のゲッター/セッターを作成することを検討しましたが、ゲッターとセッターの実行中に識別データがないため、それは不可能です。

ただし、状態をセッションBeanに保存する必要があることはおそらく明らかです。f:ajaxフォームを投稿し、送信されたデータを使用して特別なメソッドを実行することで、状態の保存を非常に簡単に行うことができlistenerます。コンポーネントの複数のインスタンスをサポートするために、リクエストスコープのBean(の複数のインスタンス)を使用して、各展開/折りたたみを処理できます。ただし、ポートレットとその状態を識別するデータを実際に投稿するには、最初にレンダリング時にフォームフィールドにデータを挿入する必要があります。

では、レンダリング時に各ポートレットに適切なデータを実際に提供するにはどうすればよいでしょうか(実際には、この場合はブール値/列挙型を指定しますが、より多くのデータを処理する必要がある場合を考えてみてください)。

のようだ:

  • h:inputHiddenまたh:inputText、value-attribute(を指す)以外の初期値の設定はサポートされていません#{portletBean.portletState}
  • 利用可能な識別情報がないため、作成時に正しい初期値でリクエストBeanを自動ロードできません。

もう一度、何かが足りないように感じます...ポインタ?

答えの少なくとも1つは、UIComponent複合コンポーネントではなく使用することだと思いますが、生のHTML要素がたくさん含まれているため、これを複合コンポーネントとして保持したいと思います。

アップデート:

  • ビュースコープのBeanを使用することを提案する、かなり類似した質問があります。ただし、これはここでは実行可能ではないと思います。
0 投票する
1 に答える
2383 参照

events - 親ページ バッキング Bean での JSF 2.0 複合コンポーネント イベントのシンク

親ページ内での JSF 2.0 複合コンポーネントの使用に関して、概念的なマインドブロックがあります。複合コンポーネントのアクションに ActionListener (およびその他) を実装する方法は理解していますが、親ページが消費するためにこれをどのように接続していますか? たとえば、ログイン複合コンポーネントで認証を実行し、完了したら、イベント (ActionListener?) を介して親ページのバッキング Bean に通知し、UI の初期化作業を行うようにします。ここで重要なのは、ログイン コンポーネントが「やあ、完了しました。ユーザーは元気です。あなたの番です」と言うところです。

よろしくお願いします。

平和。

クリス

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

jsf - 実行時にバッキング Bean から JSF 2 複合コンポーネントを追加する

編集された質問...

こんにちは、

バッキング Bean から複合コンポーネントの .xhtml ファイルをロードし、ページに動的に追加したいと考えています。.xhtml ファイルの名前は、変数から取得されます。

元。:

ありがとうございました!

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

java - @ViewScoped を @RequestScoped にする JSF 2 複合コンポーネント insertChildren タグ :(

composite:insertChildren タグを使用しているため、@ViewScoped マネージド Bean が @RequestScoped マネージド Bean のように動作するという問題があります。この件に関する他の投稿を読み、@ViewScoped managedBeans の制限を認識していますが、明示的なバインディングはなく、複合コンポーネントで JSTL を使用していません。

insertChildren タグが managedBean にバインドされていると想定していますが、誰かが私を悲惨な状況から解放し、回避策を示してくれることを望んでいます-@SessionScoped Bean の使用を開始したくありません。:)

これが私の簡単な例です。シンプルなマネージド Bean:

上記の SimpleManagedBean を以下のフォームおよび複合コンポーネント (insertChildren なし) とともに使用すると、すべてが期待どおりに機能します。テキストを入力して送信を押すと、入力したテキストとともにエラーが表示されます。この時点で、私は幸せです。

ここで、以下に示すように、panelGrid とそのコンポーネントを複合コンポーネントの外に移動し、composite:insertChildren タグに置き換えると、テキストを入力して送信を押すと、適切なエラー メッセージが表示されますが、@PostConstruct メソッド再び呼び出されると、入力したテキストが表示されなくなりました。:(

何か考えや提案はありますか?

前もって感謝します。

0 投票する
3 に答える
2524 参照

jsf-2 - Mojarra 2.0.3 で複合コンポーネントの必須属性が例外をスローする

私は JSF 2.0 複合コンポーネントをいじっていますが、composite:attributeタグの require 属性が何を意味するのかについて少し混乱しています。ドキュメントには、ページ作成者がこの属性の値を提供する必要がある場合、required 属性は true であると記載されています。

私はこれを、required=true. また、空の文字列が有効な値であると想定しました。これが Mojarra 2.0.2 での動作です。

この単純なマネージド Bean を使用すると、次のようになります。

そして複合コンポーネント:

これらのタグは Mojarra 2.0.2 で機能しました:

しかし、2.0.3 にアップグレードすると、最初のタグしか機能しません。2 番目のタグにより、次のエラー メッセージが表示されます。

required を false に設定すると、正常に動作します。

必須属性の意味を誤解していませんか? 誰かが私が期待すべき動作を明確にすることができますか?

ありがとう。

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

java - ジェネリック型を複合コンポーネントの属性タグの「型」として使用できますか?

複合コンポーネントの属性がジェネリック型を許可していないように見えます。簡単なテストケースを次に示します。

私が得るエラーは、

(< と > を < と > に置き換えると、有効な XHTML ではないため、エラーが発生します。)

型のジェネリック部分が実行時に消去されることはわかっていますが、コードを読みやすくするために、ここでジェネリックを使用したいと考えていました。それは可能ですか?

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

jsf - 複合コンポーネント内のコンポーネントが Web ページに配置される場所をカスタマイズします

複合コンポーネント内のコンポーネントが Web ページのどこに表示されるかを指定することはできますか?

ラベルとテキストボックスを含む複合コンポーネントがあります。ID「label」のdivにラベルを表示するように指定できるかどうかを知りたいのですが、テキストボックスはID「componentsContainer」の別のdiv内に表示されます。

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

java - ajaxを使用するときにJavaServerFaces 2.0複合コンポーネントを認識する方法は?

次のJavaServerFaces2.0複合コンポーネントがあります。逐語的に使用していることに注意してください

ajaxを使用するために、私は実行しました(render属性に注意してください)

私のCustomerSearchControllerは次のように表示されます

CustomerSearchControllerとCustomerはどちらもマネージドBeanです。しかし、私がajaxリクエストを呼び出すと、次のように文句を言います:search:result not found

この問題を解決するにはどうすればよいですか?

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

jsf - 複合コンポーネントの子としてJSFUIComponentを追加しても、何もレンダリングされません

私はカスタムを持っていますUIComponent。これは、ベースのfaceletテンプレートから直接呼び出されたときにokにレンダリングされます(これにより、の直接の子になると思いますUIComponentBodyTag)。ただし、複合コンポーネント内で呼び出された場合、何も起こりません。例外はありません、何もありません。それ以外はすべて問題ありません。

したがって、これが機能している間:

これは機能しません:

uiComponentWrapper.xhtml:

単純にとして印刷されBefore [] Afterます。

私の論理では、これは機能するはずです。私は何が欠けていますか?Mojarra2.0.2を実行しています。