問題タブ [uirepeat]
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.
jsf - JSF ui:レンダリングで繰り返す
ui:repeat またはその他の反復タグを使用して、配列リスト内の項目ごとに多数のコンポーネントを一度に表示したいと考えています。
ここで多くのコードを取り出したので、一致しない div などがあるかもしれませんが、アイデアはそこにあります。
2 つの問題があります。
- 一部のコンポーネントには、id に基づいて他のコンポーネントをレンダリングする変更イベントがあることがわかります。これらはリピート内では機能しません
- メッセージタグが検証メッセージを表示できるように、Webflowを使用してメッセージコンテキストにメッセージを追加していますが、これらは反復でも機能しません。
tr:iterator、c:forEach、a4j:repeat、tr:forEach を試しました。私がやろうとしていることは、私がやろうとしている方法では不可能だと確信しているので、誰かが同様のことを達成しようとした経験があれば、助けていただければ幸いです。使用している MVC フレームワークを変更することはできませんが、おそらく jQuery を使用できます。
jsf-2 - ui:repeatには一意の変数名が必要ですか?
まず、構造を説明します。テンプレートを使用して動的に生成されたメニューで共通のヘッダーを提供するJSFFaceletsページがいくつかあります。そのテンプレート内で、メニューは次のコードで生成されます。
個々のページには、メニューの設定方法を知っているページバッキングBeanがあります。したがって、ページがレンダリングされる前に、メニューは次のコードで設定されます。
これは、すべての特定のページバッキングBeanが拡張する抽象クラスのsetupメソッドを呼び出します。次に、いくつかの呼び出しを行って、mainMenueBackingBeanのメニューリストに適切な要素を追加します。これまでのところ、これは私たちにとって完全にうまくいき、今まで問題はありませんでした。
新しいページに、次のコードで実装された動的レイアウトのテーブルがあります。
ページは最初から完全にレンダリングされます。問題は、テーブル内のcommandLinkまたはcommandButtonのいずれかをクリックすると(このテーブルのみで、ページ上の他のコマンド要素がこれを引き起こさない)、次のように読み取るエラーが生成されることです。
serverError:クラスjavax.faces.view.facelets.TagAttributeException /WEB-INF/templates/secure.xhtml @ 130,106 id = "submenu _#{item.nameText}":プロパティ'nameText'がタイプorg.ppa.dbに見つかりません。 serializabledb.FaxItemsContainer
エラーの場所(@ 130,106)は、上記で引用したメニューコードですが、表示されているオブジェクトのタイプ(FaxItemsContainer)は、メニューではなく、上記の動的テーブルで使用されます。これを少しいじって、ajaxの問題やui:includeの問題などではないことを確認した後、最終的にテーブルの変数名を「item」から「faxItem」に変更すると表示されます。働くために。
したがって、最終的に、私の質問は、ui:repeat(および他のJSFコンポーネント)の変数名はスコープ内でローカルであると考えたため、同じページの2つのui:repeatsが同じ変数名を使用することは問題ではありません。そうではありませんか?同じページのui:repeatタグには、本当に一意の変数名が必要ですか?
Tomcat7でMojarra2.1.3を実行しています。
ajax - f:ajax が ui:repeat を更新しない
私のJSFページはこのようなものです。その<f:ajax>
部分は機能するようになりました。
私の豆は:
私の問題は、<f:ajax execute="@form" render="projects" />
が に値を入力しないこと<h:panelGroup id="projects">
です。これはどのように発生し、どうすれば解決できますか? <h:dataTable>
の代わりに使用すると<ui:repeat>
、正常に動作します。
jsf-2 - JSFでID内に動的に数値を設定するにはどうすればよいですか
JSF2 と Facelets を使用して JavaEE Web サイトを設計しています。以下のコードは、JSF コードがどのように見えるかの単なる例です。
Web サイトのユーザーが新しいユーザーを作成したいが、名などの設定を忘れた場合、エラーが発生し、要素が強調表示されます (赤い色と要素の周りの赤い枠)。強調表示するには、次の属性を使用する必要があります。
class="#{faceletUtils.getLabelStyleClass('createUsersForm:allUsers:0:firstName')}"
問題は、数値 0 を動的に設定する必要があることですが、私が知る限り、JSF ではネストが許可されていません。#{curUser.number} を使用して番号を取得できます。
質問: for および class 属性に数値を設定するにはどうすればよいですか?
for="createUsersForm:allUsers:0:firstName" class="#{faceletUtils.getLabelStyleClass('createUsersForm:allUsers:0:firstName')}"
JSF コードの例:
よろしく、ヤナ
forms - 内部完全に機能しているわけではなく、最後の機能のみ処理されます
同じページ内のアイテムのリストを編集したいと考えています。各アイテムは、個別のフォームを使用して編集する必要があります。ui:repeat 内に ah:form を作成しています。最後のフォームが送信されたときにのみ、ユーザー入力がマネージド Bean に適用されます。他のすべてのフォームでは、ユーザー入力はモデルに適用されません。
ビューでは、私は持っています
何の解決策もなく何時間も探します。これを行う正しい方法は何ですか?単一のフォームを使用し、その中で ui:repeat を使用することでハッキングできます。しかし、それには多くの問題があり、私はむしろその道をたどりません。ありがとう。
jsf - ui:repeat での JSF ファイルのアップロード
特定の性質の複数のドキュメントを課題にアップロードするオプションを備えた UI があります。アプリケーションの残りの部分では問題なく 1 つのファイルをアップロードできます。
環境
- トムキャット 7.0.x
- Mojarra JSF 実装 2.1.3 (20110908-FCS)
- JSF 2.1 と Primefaces 2.2
- アパッチ・トマホーク。
コードの説明
ドキュメント情報エンティティをループするコードを次に示します。これらのエンティティは、データベースのレコードまたはプレースホルダーです。エンティティには、データベース内の項目が存在する場合はそれを指す ID があり、そうでない場合は 0 になります。これは、それがプレースホルダーであり、ファイルをアップロードできることを意味します。
プレースホルダーの状況では、Tomahawk ファイル アップロード コンポーネントを含む Primefaces ダイアログを表示するアップロード ボタンがあります。
コード
JSFコードは次のとおりです。
ReportBean の UploadFile プロパティ:
問題
愚かなことに、アップロードされたファイルのループ全体を処理するために、uploadedFile 変数が 1 つしかありません。したがって、ループ内の最後のアイテムは常に他のアイテムを上書きし、最後のアイテム以外はアップロードできなくなります。明らかに、ループのたびに異なる UploadFile を指定する必要があります。List<UploadedFile> を使用しようとして失敗しましたが、配列を初期化する方法や、送信時に t:inputFileUpload コンポーネントが値を更新する方法が明確ではありません。
質問
問題は、t:inputFileUpload にどのような EL を含めるか、ReportBean のどのようなプロパティを使用して、addDocument メソッドで UploadFile の個別のインスタンスを使用できるようにするかです。
jsf - PrimeFaces ui リピート + 無限スクロール
私はprimefacesの「グリッドパネル」テンプレートを持っており、Javaクラスを介してデータベースから列を埋めています。そして、私はそのパネルのクローンをたくさん見せなければなりませんが、確かにそれらは異なる情報でいっぱいです. それらすべてを表示するために、「ui repeat」タグを使用しています。とにかく、それらのパネルを繰り返し描画しています。
したがって、これはすべてのパネルを描画するための成功した実装のようですが、たとえば 5 つの em を表示する必要があり、さらに 5 つ表示する必要があります。つまり、facebook や twitter のような無限スクロールが必要です。
PrimeFaces 3.4 Tomcat 7
ajax - ループするネーミングコンテナ内のコンポーネントをアドレス指定する方法
私は次の構造を持っています(コンテンツと属性は省略されています):
コンテナ内のコンテンツは内部リストのボタンのアクションに依存するため、更新する必要があります。上記のアプローチは、外部がない場合に機能しui:repeat
ます。ただし、存在する場合はcomponent not found
エラーで失敗します。
これは、cc.clientId
then自体に外部の行インデックスが含まれてui:repeat
いるためと思われouterlist:0:myCC:container
ます。この回答へのコメントが示すように、このインデックス付きIDは、ビューツリーのサーバー側の表現では使用できません。代わりに、「行インデックスはクライアント側にのみ存在します」。このインデックス作成がどのように行われ、サーバー側で何が利用できるのかを完全には理解していないことを認めなければなりません。
だから私の質問は:JSFはこのインデックスをどのように行うのか、(サーバー上で)どのように内部のさまざまな「インスタンス」を分離するui:repeat
のか、そして上記のコードで達成しようとしていることの解決策はありますか?
jsf-2 - JSF 2.0のpanelGridにarraylistを移入する方法は?
arraylist からデータを入力しているときに、jsf panelgrid で問題が発生しました。次のようなエラーが発生しています。javax.el.PropertyNotFoundException: /facelet/crew/searchCrew.xhtml @14,95 value="#{searchCrewBean.searchCrewParam.staffNum}": Target Unreachable, 'searchCrewParam' returned null
以下のコードを見つけてください。親切に助けてください..
以下の JSF コード:
ここに私のバッキングビーン...
ここで私の乗組員クラス...
パブリック クラス クルー {
@Akselwillgert 以下のプライベート ArrayList listOfCrew として乗組員リストをロードしています。プライベート ArrayList listOfSearchCrew ;
まだ同じ問題に直面しています...
jsf - ajax呼び出しを使用したui:repeatとc:forEachの複合コンポーネント
リストに格納されるアイテムを表す複合コンポーネントがあります。を使用してこれらのアイテムを表示したいのですが<ui:repeat>
、ajax 呼び出しに問題があります。問題は、<f:ajax>
レンダー属性の場合、コンポーネントのIDを渡したいということです
ただし、このドキュメントhttps://rogerkeays.com/jsf-c-foreach-vs-ui-repeat<ui:repeat>
で説明されている理由により、これを で使用するとエラーが発生します。
上記のコンポーネントを使用して機能させる方法はありますか<ui:repeat>
(たとえば、<f:ajax>
タグ ハンドラーを置き換えることができるコンポーネントがあるか、または<c:forEach>
構築にこだわっています)?
そこで、<c:forEach>
の代わりに を使用し始め<ui:repeat>
、 の render 属性でコンポーネントの ID を使用することができました<f:ajax>
。しかし、今回はページネーションを作成すると、リストのサイズが減少すると、ページに空のコンポーネントができ始めます。これを解決するために、ajax 呼び出しによるページネーションを開始し、空のコンポーネントの問題を解決しました。
すべてが解決したと思っていたところ、別の問題が発生しました。たとえば、10 個のコンポーネントをリストしたページがあり、別のページに移動し、そのページから再びコンポーネント表示ページに移動したとしますが、何らかの理由で今回はデータベースから 3 つのアイテムのみを取得しました。コンポーネントを介してこれらの 3 つのアイテムを表示したいだけで、他には何もありません。残念ながら、このシナリオでは 3 つのアイテムが正しく表示されますが、ページには 7 つの空のコンポーネントも含まれています。これを克服するには、もう一度このページにリダイレクトする必要があります。なので、この時点で諦めました。これとは別に、ページ上のコンポーネントの数が変更されると、最終的に以下の例外も発生します。
投稿Jsf Error : java.lang.ClassCastExceptionで説明されている提案を使用しようとしましたが、うまくいきませんでした。上記の例外に似た別のエラーが発生し始めました。
したがって、これらの長い説明の後、ajax 対応で、独自の状態に完全に責任を持ち、他のコンポーネントから独立し、ページに表示できる複合コンポーネントを作成するための最良のアプローチは何かを学びたいと思います。コンポーネントの数は、ページのライフサイクル中に (ページネーション、ナビゲーションなどによって) 変わる場合があります。