問題タブ [spring-webflow-2]
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.
java - ELのSpring Webflow完全なクエリ文字列
つまり、webflow ビュー jsp で EL を使用して完全なクエリ文字列を取得するにはどうすればよいですか? これは私がやろうとしていることです:
scriptlet の代わりに EL を使用したい場合を除き<%=request.getQueryString() %>
ます。を使用して個々のパラメーターを取得するのは簡単に思えます${param.someParameterName}
が、すべてが必要です。具体的には、CASを SSO プロバイダーとして使用しています。service
認証するために、アプリは、認証の成功後に戻る URL であるパラメーターを含むクエリ文字列を使用して、ログインを CAS にリダイレクトします。このようなもの:
CAS ログイン ページに、パスワードを忘れた場合の Webflow へのリンクがあります。そのサービス パラメータを他の Webflow に伝達する必要があります。だから私はこのようなことができます:
しかし、その後、すべての URL エスケープが失われます。さらに、将来保存したい他のパラメーターがある場合、それらも失われます。
スクリプトレットは現在機能していますが、見苦しく、プレゼンテーションにコードを含めるのは好きではありません (これは真の Java コードであるため)。EL は確かにはるかに洗練されたソリューションです。
春のドキュメントにリストされているすべての特別な EL 変数を調べましたが、まだ完全な queryString を取得する方法を思いつくことができませんでした。
- - - - - - - - - - - - - - - - アップデート - - - - - - - - - ---------------
わかりましたので、いくつかの根拠を作成しています...ExternalContext
インターフェースにgetNativeRequest()
は、実際のHttpServletRequest
オブジェクトである があることがわかりました。そこから、次のように完全なクエリ文字列を取得できます。
だから今、私はexternalContextと呼ばれる特別なEL変数があるので、私はこれを行うだけだと思います:
右?違う!externalContext
JSP ページから変数を使用できないことが判明しました。理由を知っている人はいますか?ただし、flowRequestScope
JSP で使用でき、getExternalContext
メソッドを持つ もあるので、これを行うことができます。
クール、それは機能します...しかし、なぜそれが必要なのですか? 特別な EL 変数の一部だけが JSP ページにプッシュされるのはなぜですか、また、それらの一部が変更されるのはなぜですか (viewScope
すべての値がルートに昇格されているように見えるため、viewScope.commandName は JSP で ${commandName} として参照されます)エル)?WebFlow の仕組みに根本的な何かが欠けているに違いありません。誰かが私を正しい方向に向けることができますか?
spring-mvc - Spring Web Flow 2 セットアップ、${flowExecutionUrl} をレンダリングせず、開始さえしない
シンプルな Spring MVC と Web Flow アプリを組み合わせていますが、次の状態に移動できるように、ページに flowExecutionUrl をレンダリングすることができません。これは、フローが開始されていないことを意味すると思います(明示的なトリガーはありますか?)。ログは、flow.xml ファイルを正しく登録していることを示していますが、セットアップに何か問題があると想定しています。
私の春の設定(mvc-dispatcher-servlet.xml)は次のとおりです。
そして、私のflow.xmlは次のとおりです。
ビューに正常に移動できます。
そして私のjspは:
spring - Spring Webflow:フローを強制的に再開する方法は?
私は SWF を初めて使用し、思いがけず SWF アプリケーションの保守を継承しました。
ユーザーには、画面上部に水平メニューがあり、5 つのオプションが表示されます。いずれかをクリックすると、ポートレットが画面にロードされます。
2 日前、私はタスクを受け取りました。ユーザーがこれらのオプションのいずれかをクリックするたびに、ポートレットは以前の状態を無視して再起動する必要があります。
例: ポートレットの 1 つは「SEARCH」と呼ばれ、もう 1 つは「REPORTS」と呼ばれます。現在、ユーザーが「SEARCH」をクリックすると、アプリは小さなフォームと「GO」ボタンを表示します。「GO」をクリックすると、アプリは結果のリストを表示し、それぞれに編集ボタンがあります。それらの 1 つをクリックして編集すると、appl は選択された結果の詳細を表示します。ここまでは順調ですね。
例を進めて、ユーザーがメニューの「レポート」オプションをクリックしたとします。appl は、独自のコンテンツを含むレポート ポートレットを表示します。繰り返しますが、これまでのところ、とても良いです。
ただし、ユーザーが「SEARCH」を再度クリックすると、ポートレットは最後の状態、つまり以前に検索されたアイテムのエディションを表示します。
この動作を変更するように依頼されたので、ユーザーが「SEARCH」をクリックするたびに空で開きます。つまり、ポートレットの Web フローが最初からやり直すようになります。
これどうやってするの?誰か助けてくれませんか?
SMF のドキュメントを検索し、spring-webflow-config-2.0.xsd ファイルも調べて、この場合の特定の構成を探しましたが、役に立ちませんでした。
ありがとう、
FQL
spring - Spring Web Flow 例外処理
requestParameters.sortBy
文字列として渡された場合 ( java.lang.NumberFormatException
) または欠落している場合 ( ) の例外を防ぐ方法はjava.lang.NullPointerException
?
spring-webflow - Spring WebFlow で CommonsMultipartResolver から SizeLimitExceededException を処理するには?
次のような状況があります。CommonsMultipartResolver Bean を次のように構成しました。
また、Spring Web Flow ビュー ステート jsp にいくつかのファイル アップロード フィールドがあります。
ファイルが制限を下回っている場合はすべて正常に機能しますが、ファイルが 2MB-s の制限を超えている場合は、フォームのバインド結果に検証エラーを追加する必要があります。
私の問題は、マルチパート ファイル リゾルバーがファイル制限を超えたときに org.apache.commons.fileupload.FileUploadBase.SizeL imitExceededException 例外をスローし、Spring Web Flow でこれをキャッチして FieldError を形。
transition タグの on-exception 属性を使ってみたのですが、正しく理解すれば Spring Web Flow 内でスローされた例外に対してしか機能しません。
また、Spring MVC で SimpleMappingExceptionResolver を使用しようとしましたが、ページにリダイレクトしたくないので、この例外を処理したいと考えています。
これも見つけました: https://jira.springsource.org/browse/SWF-158
しかし、それはバージョン 1.0 からのものであり、これが組み込まれたか、これらの状況を処理するためのより良い方法が見つかったと思います。
これに対処する方法についてのアイデアは大歓迎です。
ありがとう。
java - 会話型フロー アプリケーションの実装
Spring Web フローは、業界で会話型フロー動作アプリケーションまたはウィザードのようなアプリケーションに広く使用されています。このようなアプリケーションを使用する主な目的は、セッションで保持する必要があるデータを減らすことですよね? Web フローなどのフレームワークや、そのようなエンタープライズ アプリケーションの他の業界標準の実装を採用する価値はありますか?
以下は、Spring が主張する Spring Web フローとは対照的に、通常の実装の欠点です。
- 流れを視覚化することは非常に困難です。
- アプリケーションには、HTTP セッションにアクセスする多くのコードがあります。
- コントロールされたナビゲーションを強制することは重要ですが、不可能です。
- 適切なブラウザーの戻るボタンのサポートは達成できないようです。
- 「戻る」ボタンを使用すると、ブラウザとサーバーが同期しなくなります。
- 複数のブラウザー タブにより、HTTP セッション データで同時実行の問題が発生します。
spring - 春のwebflow変数のシリアル化
3 つの異なるエンティティの処理を行うフローがあります。したがって、共通のフロー状態を持つ親フロー定義があり、具体的なフロー定義では、そのフローを実際のデータとアクションの実装で拡張します。
エンティティを処理する Bean インスタンスを変数に格納したいので、親フロー定義でこの変数にアクセスできます。
親フロー定義内
具体的なフロー定義では、
concreteProcessor
必要な処理を実装するシングルトン Bean はどこにありますか。ステートレスであるため、シリアル化しても意味がありません。さらに、実装がシリアル化できない HibernateDaoSupport を使用する autowired dao 変数が含まれています。
この問題を克服する方法はありますか? 私は 1 つの解決策を持っていますが、具体的なプロセッサ メソッド呼び出しのすべての具体的なフロー定義定型コードを記述する必要があるため、あまり便利ではありません。
それは少し面倒です。
spring - SpringWebフロー内のGETからクエリ文字列を読み取る
やあ。
実行キーを使用して、スプリングWebフローを続行します。(注文ペイパル支払い)そしてgetからクエリ文字列を読み取る必要があります。&TokenIDおよび&PayerID
これは、支払いを確認した後にPaypalがユーザーをリダイレクトするURLのようになります。
eventIDが承認されると、フローは支払い確認済みの状態にリダイレクトされます。この部分は機能しています。どういうわけかクエリ文字列パラメータを取得する必要があります。
これを行う方法はありますか?
spring-webflow-2 - Spring Web フロー 2.3.1 (Spring 3.2.0 + JSF 2.0) を起動できない
Spring web flow 2.3.1 + Spring 3.2.0 + JSF 2.0 でフローを起動できません。Spring は初期化されていますが、フローを読み込もうとしても何も起こりません。
FlowExecutionListener をアタッチしました。作成されます。しかし、制御は戻されません。RequestContextHolder.getRequestContext() を取得しようとしているのと同じ方法で、null を返します。
構成の何が問題なのかわかりません。構成に記載されているすべての手順を試しました。
以下のクラスを使用していますが、
ナビゲーション ハンドラ - org.springframework.web.jsf.DelegatingNavigationHandlerProxy 変数リゾルバ - org.springframework.faces.webflow.SpringBeanWebFlowVariableResolver
呼び出されるカスタム ContextLoadListener があります。ロードする contextConfigLocation パラメータとして Webflow 構成 xml を渡しています。FlowExecutionListener を登録したため、ファイルにも負荷がかかっています。
spring-mvc - Spring Message Resource Bundles - ホワイトラベルとバージョン管理に適していますか?
誰か助けてくれませんか。Spring MVC と Webflow アプリをまとめており、すべての画面テキストなどをデータベースに基づくメッセージ リソース バンドルに入れたいと考えています。私はこれを問題なく簡単に実装しました。ただし、テキストのバージョン管理を含め、アプリケーションのホワイト ラベルをサポートする必要があります。
「ホワイト ラベル」とは、コア アプリケーションをさまざまな商用ブランド向けにブランド化する必要があることを意味します。ブランディングの css 要素は簡単です。Spring テーマを使用します。ただし、ブランディングはさまざまな画面テキストにまで及びます。たとえば、brandX は「What is your name」と尋ね、brandY は「Please enter your name」と尋ねる場合があります。
さらに、ブランドごとに画面テキストのバージョン管理をサポートする必要があります。これにより、一貫したユーザー ジャーニーと顧客へのメッセージが提供されます。たとえば、顧客が 1 日目に所定の画面ラベル セットを表示して見積もりを保存した場合、10 日目に見積もりを取得したときに同じ画面ラベル セットが表示されるはずです。 、その間にそのブランドの画面テキストが 5 回繰り返されたとしても。(実際には、変更の頻度はそれほど頻繁ではありませんが、それでもサポートする必要があります)
私はしばらくこれをいじっていましたが、初期の実験では、リソース バンドル内のメッセージ キーにプレフィックスを付けるだけでよいと考えていました。
しかし、これはいくつかの点で間違っているように感じます。
- ブランドごとにビューを持たない限り (そうしなければならない場合があります)、ビューはモデルまたはテーマの何かに基づいて何らかの方法でプレフィックスを適用する必要があります。表示する適切なメッセージを選択するために、ビューがモデルについて知るのは間違っていると感じます
- バージョニングの適用方法がわかりません (複合キーに追加する以外は = brandX.firstname.v2 = あなたの名は?)
全体として、これはメッセージ リソース バンドルの目的ではないという結論に達しています。メッセージ リソース バンドルは、ロケール ベースの国際化に最適です (これが目的です!)。彼ら。解決策としてのメッセージ リソース バンドルは、私の要件には適していないように感じます。
他の誰かがこのようなことをしましたか? どのように解決していきましたか?
乾杯
ネイサン