問題タブ [backing-beans]
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.
html - JSF2.0-HTMLをXHTMLページに埋め込む
複数のユーザーグループが使用しているページを開発する必要があります。要件は、各ユーザーグループがページにアクセスするときにカスタマイズされたルックアンドフィールを必要とすることです(識別パラメーターを使用)。ユーザーは必要なhtmlをデータベーステーブルにダンプしたいと考えており、ページ(faceletまたはjsp)がユーザーグループを決定し、対応するhtmlを表示します。これをどのように行うことができるかについての指針はありますか?
例:ユーザーグループ1がURL abc.com/xyz?param=aaaにアクセスする場合、ページには、UserGroup1に対応するデータベースに保存されているhtmlが表示されます。同様に、abc.com / xyz?param = bbbは、UserGroup2用に保存されたhtmlをレンダリングする必要があります。
グループ1のhtml:
こんにちは、グループ2のユーザー1 html:
こんにちは、ユーザー2私のJSPは、サーブレットまたは他のクラスからこのhtmlコードをどのように取得しますか?
JSF 2.0の提案はありますか?メソッド内にあるhtmlをfaceletページに吐き出す(またはバインドまたは作成する)バッキングBeanを作成するにはどうすればよいですか?
上記のサンプルコードは単純に聞こえるかもしれませんが、実際には、レイアウト、画像、境界線、テーブル、コンテンツ全体が完全に異なります。
私はJSPでもjspの代替案について同様の質問をしました -データベースからhtml(またはjsp)コードをレンダリングする方法
jsf - jsf1.2UIコンポーネントタグバッキングBean
ui:component
JSF 1.2を使用していて、タグを使用してカスタムコンポーネントを作成したいと思います。このコンポーネントはアプリケーションのさまざまな場所で使用する必要があるため、このコンポーネントの再利用性を高めたいと考えています。
問題は、このカスタムコンポーネントを使用するたびに、情報を格納し、特定のイベントのアクションリスナーとして機能するバッキングBeanが必要になることです。このコンポーネントは、アプリケーション内の約15か所で使用しています。また、このコンポーネントを1つのページ内で複数回使用しています。
カスタムJSFコンポーネント(UIComponent、レンダラーなどを使用)を作成したくなく、バッキングデータを管理する方法がわかりません。
クラスを指定する方法はありますか?カスタムコンポーネントは、使用するたびにクラスのインスタンスを作成しますか?
編集: 既存のJSFコンポーネントを拡張することは可能ですか?(私はRichfaces実装を使用しています)
ヘルプやアイデアは大歓迎です。
javascript - javascriptを使用してjsf h:outputText値を取得する方法は?
ボタンに myBackingBean.myString を設定できるアクションがあり、onclick イベントが js メソッドを呼び出してその値を警告します。javascript を使用して、バッキング Bean から myString の値を取得したいだけです。
バッキング Bean からの値を持つ非表示の出力があります。
次に、ボタンによってトリガーされる javascript fxn でこの値を警告する必要があります。
しかし、私はObject required
エラーが発生しました。どうすればこれを修正できますか? 前もって感謝します。
spring - @Viewscoped Beanは、別のページに移動しても破棄されません
@Viewscoped
JSF2.1プロジェクトでBeanを使用しています。奇妙なことに、私が最初にページを取得したとき、Beanはすべての初期パラメーターで明確に初期化されています。しかし、別のページに移動すると、アプリが開いているブラウザタブを閉じても、Beanは停止しません。このBeanを使用するページに戻ると、値はこのページの使用中に変更されたものと同じです。さらに、IEやChromeなどの別のブラウザを開いても、値はまだそこにあります!! セッションスコープのように動作しています。またはある種の不滅の豆、je。
Beanにはこのように注釈が付けられています。
なぜこれが起こるのですか?SpringFrameworkアノテーションが問題の原因である可能性がありますか?
jsf - JSF BeanとしてのJPAエンティティ?
エンティティを JSF バッキング Bean として使用することは理にかなっていますか?
それとも、それらを別々に保持し、最後にバッキング Bean からエンティティにデータを転送する方がよいでしょうか?
jsf - JSFバッキングBeanメソッドが呼び出されない
バッキングBeanでeditUser(User)メソッドをトリガーするコマンドボタンまたはeditClient(User)メソッドをトリガーするコマンドボタンをクリックすると、メソッドが呼び出されなくなります。以前は機能していましたが、現在は何も呼び出されていません。ページがリロードされます。
ここで何が間違っている可能性がありますか?
これが私の見解です:
そして、これが私のバッキングBeanです:
}
jsf - WPS 7.0 のテーマ ナビゲーション メニューから JSF バッキング Bean をリセットする
ビューJSPにユーザーフォームを持つJSFポートレットがあります。要件は、テーマ ナビゲーション メニューをクリックするたびに、新しいフォームをユーザーに表示する必要があることです。しかし問題は、メニューをクリックするたびに値が保持されることです。テーマ ナビゲーションのクリック時にバッキング Bean を削除/再初期化する方法を提案してください。
ありがとう、ラージ
jsf - JSF:c:ボタンクリックで設定?
c:set
特定のボタンが押されてリダイレクトが発生したときに、さまざまなタグを「実行」/「レンダリング」することは可能ですか?
バッキング Bean のプロパティをコード単位で設定したくありません。静的データを入力するためです。ここでは 1 つのボタンについてではなく、複数のボタンについて話しているので、これをコード単位で行うと、多くの定型コードが生成されます。それが私が使いたい理由ですc:set
。
java - アプレットからサーブレットを介してバッキングBeanにシリアル化されたオブジェクトを送信し、結果のJSFページを開く方法
私は最初のJSF2.0Webサイトを作成しているアプリケーションプログラマーであり、JSFについて私がすべきことをあまり知らないことを告白します。私は何ヶ月もドキュメントに苦しんでおり、特にこれらのフォーラムのおかげで、この時点まで立ち往生していません。Webサイトの大部分は完成して機能しており、ここで使用されているバッキングBeanは他の場所でも問題なく使用されています。
サーブレットを介してアプレットからバッキングBeanに送信する必要があるシリアル化された検索条件オブジェクトがあります。次に、バッキングBeanメソッドは、検索基準データを処理して、データベースに保持されている製品のリストに適用し、ランク付けされた製品のリストを新しいJSFページに表示します。
正しいデータで結果ページを開く試みはすべて失敗しました。ナビゲーションケース「return"process_MainSearchResult";」バッキングBeanで何も実行していません(バッキングBeanコードの詳細とfaces-configエントリを参照してください)。appletContext.showDocument(以下を参照)を使用してアプレットから結果ページを開こうとしましたが、新しいページには検索条件オブジェクトが渡されたバッキングBeanがないため、正しいデータがありません。
アプレットのsetRequestMethodにPOSTを設定しても効果がないことに注意してください。常にサービスを使用します。setDoInputとsetDoOutputがtrueに設定されておらず、サーブレットからアプレットに応答が返される場合、送信されたオブジェクトは送信されず、何も起こりません。これが私の問題の核心にあると思いますが、何らかの方法で変更すると、シリアル化されたオブジェクトが正常に送信されなくなります。
現状では、オブジェクトはバッキングBeanに正常に送信されますが、新しいページには正しいデータがロードされません(サーブレットのリダイレクトではなく、アプレットのshowDocumentを使用)。新しいWebページに元のバッキングBeanを設定する方法はありますか、それともこれをすべて間違って行っていますか?
WebサーバーはGlassfish3.x、IDEはNetbeans 7.0.1、システムはWinXPです。バッキングBeanクラスは「ProductSelection」です。サーブレットクラスは「CriteriaServlet」です。
アプレットの「検索基準の送信」ボタンコード:
redirect(url)を使用してサーブレットでリダイレクトしようとしましたが、成功しませんでした。
現在の応答がすでにコミットされていると思われるため、次のエラーが発生します。
警告:StandardWrapperValve [CriteriaServlet]:PWC1406:サーブレットCriteriaServletのServlet.service()は、com.sun.facesのorg.apache.catalina.connector.ResponseFacade.sendRedirect(ResponseFacade.java:522)で例外java.lang.IllegalStateExceptionをスローしました。 context.ExternalContextImpl.redirect(ExternalContextImpl.java:572)at searchselection.CriteriaServlet.service(CriteriaServlet.java:217)at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1523)at org.apache.catalina .core.StandardWrapperValve.invoke(StandardWrapperValve.java:279)at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:188)at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:641 )com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:97)atcom.sun。Enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:85)at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:185)at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java: 325)org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:226)at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:165)at com.sun.grizzly .http.ProcessorTask.invokeAdapter(ProcessorTask.java:791)at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:693)at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:954 )com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:170)atcom.sun.grizzly.DefaultProtocolChain。executeProtocolFilter(DefaultProtocolChain.java:135)at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:102)at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:88)at com.sun.grizzly.http .HttpProtocolChain.execute(HttpProtocolChain.java:76)at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:53)at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:57)atcom.sun。 grizzly.ContextTask.run(ContextTask.java:69)at com.sun.grizzly.util.AbstractThreadPool $ Worker.doWork(AbstractThreadPool.java:330)at com.sun.grizzly.util.AbstractThreadPool $ WorkerThreadPool java:309)at java.lang.Thread.run(Thread.java:619)execute(DefaultProtocolChain.java:102)at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:88)at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:76)at com.sun.grizzly .ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:53)at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:57)at com.sun.grizzly.ContextTask.run(ContextTask.java:69)atcom.sun。 grizzly.util.AbstractThreadPool $ Worker.doWork(AbstractThreadPool.java:330)at com.sun.grizzly.util.AbstractThreadPool $ Worker.run(AbstractThreadPool.java:309)at java.lang.Thread.run(Thread.java: 619)execute(DefaultProtocolChain.java:102)at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:88)at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:76)at com.sun.grizzly .ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:53)at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:57)at com.sun.grizzly.ContextTask.run(ContextTask.java:69)atcom.sun。 grizzly.util.AbstractThreadPool $ Worker.doWork(AbstractThreadPool.java:330)at com.sun.grizzly.util.AbstractThreadPool $ Worker.run(AbstractThreadPool.java:309)at java.lang.Thread.run(Thread.java: 619)76)com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:53)at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:57)at com.sun.grizzly.ContextTask.run(ContextTask.java :69)com.sun.grizzly.util.AbstractThreadPool $ Worker.doWork(AbstractThreadPool.java:330)at com.sun.grizzly.util.AbstractThreadPool $ Worker.run(AbstractThreadPool.java:309)atjava.lang。 Thread.run(Thread.java:619)76)com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:53)at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:57)at com.sun.grizzly.ContextTask.run(ContextTask.java :69)com.sun.grizzly.util.AbstractThreadPool $ Worker.doWork(AbstractThreadPool.java:330)at com.sun.grizzly.util.AbstractThreadPool $ Worker.run(AbstractThreadPool.java:309)atjava.lang。 Thread.run(Thread.java:619)run(AbstractThreadPool.java:309)at java.lang.Thread.run(Thread.java:619)run(AbstractThreadPool.java:309)at java.lang.Thread.run(Thread.java:619)
戻り値"process_MainSearchResult"; バッキングBeanでは機能しません:
Faces-config.xmlエントリ:
また、バッキングBeanでこれを試し、リダイレクトを強制しました。
また、これはバッキングBeanに含まれています。
このメソッドを呼び出すもの:
上記のサーブレットの例と同じjava.lang.IllegalStateExceptionエラーが発生します。リダイレクトのドキュメントには、次のように記載されています。
jsf - JSF のバッキング Bean 編成
私はこれについてしばらく考えていましたが、プレゼンテーション層の JSF プロジェクトで Bean/クラスを編成する方法のベスト プラクティスをまだ考え出していません。もちろん、そこには多くの要因がありますが、私は議論したいと思います。これが私の現在の考えです:
表示ページ (データの表示) と編集ページ (データの追加、更新、削除) を含む基本的な JSF (残念ながらここではまだ JSF 1.xx のままです) アプリケーションを考えてみましょう。プロジェクトを整理する方法は次のとおりです。
スコープ指定された BackingBean をリクエストします。
- 関連するものを表示します (保存ステータス、レンダリング ロジックなど)。1 回のリクエストでのみ必要なもの
- アクション、アクション リスナー、値変更リスナー。複数のビューに適用できる場合は、独自のファイルに分割できます。
セッション スコープの BackingBean:
- 1 つのリクエストよりも長く存在する必要があるもの。データベース データ、SelectItems など。
- この Bean はリクエスト Bean に注入され、任意のデータ オブジェクトのインスタンスを格納します。
データ オブジェクト:
- データ オブジェクトを Bean にするのは意味がないように思われるので、それらは別々に格納されます。これは、ユーザー、本、車など、ページに表示するオブジェクトです。オブジェクトには、getFormattedName() などのビュー ヘルパー メソッドを含めることができます。
ダオ:
- ビジネス ロジック層とのすべての対話を処理する非 Bean オブジェクト。データ Bean をロードし、サブミットなどを準備します。私は通常、これを public static メソッドのクラスにします。
コンバーター、バリデーター:
- 別ファイル
平均的な JSF アプリケーションで必要なのは、これだけのようです。私はこれを読みました: http://java.dzone.com/articles/making-distinctions-beforeと、ここでの返信: JSF バッキング Bean 構造 (ベスト プラクティス)ですが、全体像を把握できているとは感じませんでした。BalusC の回答は役に立ちましたが、アプリ全体をカバーしているようには見えませんでした。あなたの考えを聞かせてください!