問題タブ [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 に答える
15541 参照

jsf - JSF 2.0コンポジットコンポーネントを使用して動的リストを実装するにはどうすればよいですか?

私はこの質問をしました、そして答えは私のニーズを直接満たしましたが、私はこの特定の問題のためのより簡単な解決策がなければならないという感覚を残されています。

アイテムのリストを受け入れる複合コンポーネントが欲しい(複合コンポーネント内でメンバーを自由に使用できるように合意されたアイテムのタイプ)

CC(複合コンポーネント)はアイテムのリストを表示し、アイテムの加算と減算を可能にします。

これを最も簡単で効率的な方法で行いたいと思います。

問題を説明するために、例:

ここに画像の説明を入力してください

定義はかなり単純である必要があります(もちろん、そうでない場合を除きます:-)):

Fieldオブジェクトの最も抽象的な形式は次のとおりです。

それだけだと思います。これを簡単な方法でどのように実装しますか?

ありがとう!

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

javascript - 複合コンポーネントからJavaScriptを実行する

良い一日、私は今数時間私を悩ませている問題を抱えています。それは非常に簡単です。複合コンポーネントがレンダリングされるときにJavaScriptを呼び出し/実行しようとします。htmlタグ本体とonloadでできることのように。

実行するインラインJavaScriptを参照するにはどうすればよいですか?

this.init()、#{cc.clientId} .init()を試してみましたが、コンテキストでJSが見つかりません。JSF / ajaxコンポーネントから実行すると、「init();」だけで正常に動作します。

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

jsf - JSF2 複合コンポーネント: #{cc.childCount} および相互に排他的ですか?

私はそれを理解していません:複合コンポーネントに子を挿入したい場合は、使用 <composite:insertChildren/>しますが、その場合#{cc.childCount}は常に戻ります0。一方、使用しない 場合は、子がレンダリングされず<composite:insertChildren/>に常に正しくなります。childCountなぜそれが起こっているのですか?

コンポーネントでやりたいことは、子がない場合は「デフォルト」パネルをレンダリングし、それ以外の場合はレンダリングしないことです-動作は<ui:insert name="param_name">default value</ui:insert>. したがって、一緒に機能していないように見えるinsertChildrenとchildCountの両方が必要です。

コードは次のとおりです。

以下の実装を使用すると、2期待どおりにレンダリングされます

を使用するinsertChildrenと、両方の子がレンダリングさ0れ、最後に:

私の目標は次のとおりです。

アイデア/回避策はありますか?

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

jsf - カスタム/コンポジットコンポーネントでこれを行うにはどうすればよいですか?

もっと具体的な質問をしようとしましたが、あまりにも具体的だったのではないかと思いますので、ズームアウトしてより良いアドバイスをもらいます。2つの属性を受け入れるコンポジット/カスタムコンポーネントを作成しようとしています

  1. 文字列のリスト->フィールドの名前
  2. <String, Value>->フィールドのグループのリストのリスト<fieldName, fieldValue>

値の例:

  1. [Street, Country, State, ZipCode]
  2. [{(Street, Greenfield), (Country, USA)}, {(Country, Canada), (ZipCode, 3333)}]

コンポーネントは、属性に基づいてこれをレンダリングします。

ここに画像の説明を入力してください

このコンポーネントで問題が発生する理由は、元々入力されていないが、コンポーネントを介してユーザーが追加できるフィールドのプレースホルダーを維持するための適切な方法がわからないためです。

上記の例では、最初のセットの場合、これらはとにStateなりZipCodeます。

私のアイデアは、すべてのフィールドを含むダミーオブジェクトを作成し、送信時にダミーオブジェクトの値を属性で渡されたデータ構造にコピーすることでした。私が直面していた問題は、コンポーネントの作成時に値を読み取る方法がわからず、送信時に属性を通過するリストを変更することでした。

すぐにサンプルコードを追加します(ただし、この質問に答えるのに重要なことではありません)

ここまで読んでくれてありがとう!:-)

私のコード(繰り返しますが、質問に答えるのに必要ではありませんが、私の挑戦を理解するのに役立つかもしれません)

複合コンポーネントコード:

コンポーネントBeanのJavaコード:

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

java - JSF 2 - Ajax リスナー メソッドを複合コンポーネント インターフェイスに追加するにはどうすればよいですか?

Ajax の動作を使用する JSF 2 複合コンポーネントがあります。複合コンポーネント内listenerのタグにメソッドを追加したいのですが、そのメソッドは で として提供する必要があります。<f:ajax>listener<composite:attribute><composite:interface>

<f:ajax>現在、複合コンポーネント内のタグは、次のようにリスナーにハードコーディングされています。

Bean のリスナー メソッドには、次の署名があります。

ページが独自のイベント メソッドを提供できるように、複合コンポーネントをこのようなものにしたいのですが、インターフェイスの正しい構文がわかりません。

これどうやってするの?

ソリューションで更新:

BalusC によって提案されたアプローチを採用しましたが、うまく機能します。関連するスニペットは次のとおりです。

複合コンポーネントのインターフェース宣言

複合コンポーネントで使用される Ajax タグ

複合コンポーネントを使用するページ内の場所

そして、私のバッキングビーンのメソッド

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

jsf - 使用するたびに複合コンポーネントで`componentType`の同じインスタンスを取得する

Composite Componentこんにちは私が書いたを使用しているこのWierdの問題があり、CCのバッキングBean( componentTypeBean)の以前の使用から値を取得します

コードを表示するよりも、これをうまく説明する方法がわかりません。私はそれについて簡単に説明し、冗長な部分をカットしようとします:これはComposite Component定義です:

CC Beanの定義:

そして使用コード:

idのテキストにcontrolMsgは正しい値が表示され、#{group.values}idのコンポーネント内のコントロール出力にinner_control_componentは以前の使用からの値が表示されます。

値は最初は正しいです...

CC Beanの使用における根本的なエラーだと思います。そうでない場合は、MyFaces 2.1(私が使用している)のバグである可能性があります。

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

c++ - 消去中の std コンテナー イテレーターの無効化

重複の可能性:
vector erase iterator
erase() を呼び出した後の std::map::iterator の問題


私が持っているコードの一部について懸念があります。コンポーネントと、コンポーネントを格納するオブジェクトがあります。問題は、コンポーネントがオブジェクトからコンポーネントを削除するように指示できる更新中です。しかし、別の関数から呼び出されます。

Health、Alive、Graphics、Physics、Input など、多くのコンポーネントがあるとします。

このようなことを(いくつかのテストコンポーネントを使用して)試しましたが、更新中にエラーは発生しませんでした。しかし、私は本当に心配しています。将来的にエラーが発生する可能性はありますか? はいの場合、それを修正する方法は?

前もってありがとう、
ガシム

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

jsf - JSF 複合ボタンは、ビュー スコープのマネージド Bean を再初期化します

commandButton をカプセル化するコンポジットが .xhtml に含まれるとすぐに、どの commandButton が使用されていても、viewscoped Bean が再初期化されます。私のコンポジットは間違っていますか?ボタンにコンポジットを使用したいので教えてください。
簡単なテストケース:

}

どのボタンをクリックしても (2 列目または 3 列目)、postConstruct メソッドが何度も呼び出されます。

最後の列 (header actie...2) が削除されるとすぐに、期待どおり @PostConstruct が 1 回だけ呼び出されます。

ビュースコープ Bean を再初期化する複合力が存在するのはなぜですか? 私のコンポジットの何が問題なのですか。動作しますが、マネージド Bean を再初期化するべきではありません。

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

jsf - JSF2複合コンポーネントのレンダリングの問題

私の複合コンポーネント(cc)はinputText-Fieldを作成します。重要なのは、モデルのプロパティ「visible」に応じてレンダリングされることです。モデルは、parm"name"を介してコンポーネントに与えられます。

ビューには、2セル/行のpanelGridがあります。最初の行にはラベルと私のccがあり、2番目の行は重要ではありません。ラベルは、私のccと同じモデルプロパティでレンダリングされます。

「visible」-propertyが「false」を返す場合、結果(および問題)は次のようになります。コンポーネントはレンダリングされません(完璧です!)が、ccの結果のHTMLは空のセル(たとえば<td></td>)を残し、見苦しいレイアウトのHTMLになります-テーブル(1つのセルをオフセット):

私が理解している限り、これはライフサイクル(jstlとjsf)に関係しています:私のccは前にレンダリングされ<h:outputText../>ますが、どうすれば空のセルを取り除くことができますか(例<td></td>)?私はここで何かが欠けていますか?

専門家の皆さんの助けに感謝します!マーク

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

jsf-2 - java.lang.IllegalStateException: コンポーネント ID は既にビューで見つかりました

このエラーが発生しています。すべてのコンポーネントに ID を追加し、stackOverflow に関する他のいくつかの提案を読んだ後、セッション スコープも変更しました。

タブを含む折りたたみ可能なパネルを作成しようとしています。

tabbb.xhtml

ページの使用: tabbedcollapsible.xhtml

BeancollPanelとの両方tabbBeanがリクエスト スコープです。

また、フォームはタブをレンダリングしません。私はJSFを初めて使用し、長い間これにこだわっています。ありがとう。