問題タブ [uiinclude]
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 - ui:insert 内の ui:include が機能しない
<ui:insert>
中に書き込めます<ui:include>
か?コンテンツを使用しようとすると<ui:define name="jsInclude">
、コンテンツが表示されません。JSF 1.2 でこれを試すと、これは機能しますが、JSF 2.2 では機能しません。
JSF 2.2 のテンプレートの概念で欠けているものを理解するのに誰か助けてくれますか?
ありがとう!!
以下は私のコードです
これがテンプレートファイルです
これは含まれているファイルです
以下はクライアントのメインページです
jsf - バッキング Bean に値を設定する場合、Bean 名を変数にすることができます
パラメータを設定するときに、変数を使用してバッキング Bean を定義する方法はありますか。私たちのアプリケーションでは、テーブルのすべてではないにしても、ほとんどの列で複数のフィルタリング基準を許可しています。これを実装する各列定義にコピーされるコードのセクションを開発しました。列定義の例:
含まれているコードは、列見出しを作成し、列を並べ替えてユーザー ヘルプ テキストを表示するためのコマンド ボタンを備えています。これらはすべて正常に機能します。ただし、ユーザーから各列の複数のフィルタリング パラメータを取得するダイアログを実行するコマンド ボタンも含まれていました。これは PF 3.2 では正常に機能していましたが、5.2 に変換すると機能しなくなりました。ドキュメントを見ると、ダイアログをテーブル定義に含めるべきではないことがわかりました。そのため、ダイアログをテーブル定義の外に移動しようとしています。ただし、これは、ui:include で取り込まれたコードに設定されたパラメーターがダイアログに表示されないことを意味します。次のように、バッキング Bean にフィルター処理される列に固有のパラメーターを設定することで、これを克服できます。
次に、ダイアログはこれらのバッキング Bean 要素のコンテンツを取得できるため、どのフィルターを要求するかがわかります。Bean 名を変数として指定できれば、コピーしたスニペットの 1 つのコピーだけが必要ですが、実際の Bean 名を入力する必要がある場合は、1000 を超えるテーブルを持つすべてのページにコピーが必要になります。現在のところ。target="#{#{programId}.field}" など、変数を使用するいくつかの方法を試しましたが、これまでのところ、それらはすべて解析に失敗したか、変数ではなく静的 Bean 名として解釈されました。bean名を変数で指定することはできますか?
環境: PF 5.2、jBoss 7.1.3、jdk-7、jsf 2.2
jsf - ui:include ページの変更は、数分後にのみ更新されます
下部に一種の「ポップアップ」があるページがあります。
しかし、そのファイルの内容が変更されると、10回ほど更新してもページは変更されません。
ただし、数分でページを更新すると、問題なく動作します。
それはある種のキャッシュの問題か何かですか?
アップデート
どうやらキャッシュとは関係がないため、回答を受け入れませんでした。キャッシュを削除しました(Ctrl + Shift + Del)が、ファイルの変更はまだページに反映されていません。さらに、私のjavax.faces.PROJECT_STAGE
パラメータはに設定されていDevelopment
ます。
validation - Validator を ui:include に追加するには?
モハラ 2.1
私はフェイスレットを持っています(名前空間は省略されています)inc.xhtml
:
入力用の追加のバリデーターを追加する別の facelet にビューを含める必要がありname
ます。私はこれを試しました:
そして、それはうまくいきませんでした。私は例外を得ました:
それを行う方法はありますか?
jsf - Bean を facelet パラメータとして渡し、後続の複合コンポーネントを渡すと、「識別子 ''*'' が null に解決される」例外が発生する
私は単純な複合コンポーネントを持っていますbutton.xhtml
:
details.xhtml
次のページで使用されます。
details.xhtml
ページが別のページに含まれています。に注意してactionBeanParam
ください。にパラメータとして渡されますdetails.xhtml
。ページには 2 つのボタンが表示されます (テスト用)。最初のボタンは、複合コンポーネントが機能することを確認するためのものです。2番目のボタンは、私が達成したいものです:
そして最後にバッキングビーン:
トップボタンを押すと正常に動作します。コンソールに次のように表示されます。
パラメータ: シンプルボタン
下のボタンを押すと(私のシナリオ)、例外がスローされます:
javax.el.PropertyNotFoundException: JBWEB006016: ターゲット到達不能、識別子 ''actionBeanParam'' が null に解決されました: javax.faces.el.EvaluationException: javax.el.PropertyNotFoundException: JBWEB006016: ターゲット到達不能、識別子 ''actionBeanParam'' が null に解決されました
私はここで同様の問題を見つけました: Facelet パラメーターとしての Managed Bean により、複合コンポーネントの解決が防止されます
しかし、アクションにパラメーターがあるため、この問題の回避策を使用できません。
c:set
inを介してパラメーターを再設定する回避策がありますdetails.xhtml
。
details.xhtml
が複数回含まれていると正しく動作しません。
私が使用しているもの: JBoss EAP 6.2.1、Mojarra 2.1.19-jbossorg-1
助言がありますか?
jsf - JSF facelets ui:include が機能しない
私はJSFとfaceletsの初心者です。このチュートリアルに基づいて facelets テンプレートを作成しようとしています。はcommon.xhtml
にテキストを表示しませんheader/content/footer.xhtml
。stackoverflow でこのトピックに関連するいくつかの投稿を読み、それらの投稿に基づいていくつかの異なる exp を試しましたが、どれも機能しません。localhost:8080/AppName/templates/common.xhtml
常に空白のページですが、localhost:8080/AppName/templates/header.xhtml
正しくレンダリングされます。
どんな助けでも大歓迎です。ここで何を見逃したのですか?
header.xhtml
footer.xhtml と content.xhtml は類似しているため、ここでは省略します。
common.xhtml
以下の header.xhtml、templates/header.xhtml、./header.xhtml、#{request.contextPath}/templates/header.xhtml を試しましたが、common.xhtml にはまだ空白のページが表示されます
プロジェクト ファイルの構造:
web.xml
jsf - ページを含むJSFは機能していませんが、インクルードに直接値が含まれている場合は機能しています
JSFページで実行している間、その保存機能は機能していますが、実行<ui:include src="#{initilizingBean.displaypageurl}"/>
中にページは含まれていますが、含まれているページの保存機能は機能していません。
どんな助けでも大歓迎です。私を助けてください。
jsf - JSF 再帰的な ui:include は、複数のポストバックで出力ツリーをごちゃまぜにする
大学のコース登録情報を展開可能なツリー形式で表示するレポートがあります。プレフィックスをクリックすると、概要登録番号と特定のコース登録番号を含むコースプレフィックスが表示されます。レポートは、最初の実行時には正常に機能します。ただし、別のセッションでレポートを再度実行することにした場合、状況はごちゃごちゃになります。
Report Oneを実行すると、正しいです。レポート 2が実行されると (別のセッションの場合、同じセッションの実行は正常に機能します)、2 番目の要素が重複または欠落していることに注意してください。これらのレポートはどちらも、「最初に」実行された場合、つまり、そのユーザー セッションで他のレポートが実行されていない場合に正しく機能します。
再帰的に含まれるページを使用してツリーを構築しています。これは、レポート ページ自体である registration.xhtml からの関連コードです。
含まれている reportTree.xhtml コード (CSS/jQuery を使用したツリー展開コード):
バッキング Bean EnrollmentBean.java の関連部分:
TreeNode クラスは私が作成したクラスで、データ、親、および子の単純な追跡を提供します。必要に応じてそのコードを投稿できますが、現時点では不要だと思います。
この問題のトラブルシューティング中に、バッキング Bean でレポート ツリーが構築されている reportData が常に正しいことを確認しました。Logger クラスを使用して、ツリーが正しく生成されていることを確認しました (ツリーに処理された各行をサーバー ログに書き込むことによって)。ツリーが構築された後にサーバー ログにツリーを書き出すことで、毎回の実行後に reportTreeData が正しいことも確認しました。
@SessionScoped
バッキング Bean を からに変更する@RequestScoped
と、レポートが毎回正しく生成されることに気付いたので、JSF ライフサイクルの Render Response フェーズで何か問題が発生しているとしか言えません。バッキング Bean で既に生成されたレポート データを使用する「CSV のダウンロード」リンクがあるため、CSV を生成するためにレポート ロジックを再実行する必要がないため、これを修正として使用したくありません。
なぜこれが起こっているのか、この動作を修正するために私にできることを誰かが知っていますか? GlassFish Open Source Edition 4.1 (ビルド 13) で JSF 2.2 と Java EE 7 を使用しています。
2015 年 12 月 24 日更新
レンダー レスポンス フェーズの JSF コードを調べてみましたが、2 回目のレポート実行で間違ったデータを使用して EL 式が評価されているようです。EL式を評価するために関数呼び出しを行っている場所がわかり、間違ったデータが返されています。後でその関数呼び出しにステップインできるように、weld-osgi-bundle.jar ソースを取得しようとします。