0

私はstrutsアクションフロー(struts-1.xフレームワーク)を持っています。実行すると、アクションクラスはコードを使用して変数をActionFlowActionUnit1.java設定しますStringvarNamerequest

request.setAttribute("varNameFromRequest", varName);

フローは最終的に a のロードにつながりjsp Page1.jspます。

現在、Page1.jspボタンが含まれており、クリックするとアクション クラスを持つ新しい Struts アクション フローを開始しますActionFlowActionUnit2.javavarNameこのクラスでは、 を使用してリクエストで設定した を使用したいと考えていrequest.getAttribute()ます。

SESSIONを使用せずにどうすればよいですか?

request技術的には、新しい struts-action をトリガーすると、以前に設定された他のすべての情報が失われるため、これを使用してこれを達成できるかどうかはわかりませんrequest(私が正しければ)。

Google から何も取得できませんでした。

4

1 に答える 1

1

あなたが言うように、あなたが望むように技術的に実現可能ではありません(ブラウザからのすべてのhttpリクエストは新しいHttpServletRequestオブジェクトを作成します)

次の 2 つのオプションがあります。

  • Session私が理解している限り、避けたいの使用
  • 保持したい値を使用して、連続するすべてのリクエストでいくつかのパラメーターを行ったり来たりします。

2 番目のオプションは、Page1.jsp 内にパラメータを格納<form>し、2 番目のアクションで受け取る必要がある変数を格納し、すすぎと繰り返しを行うことを意味します。これは純粋な html フォーム ソリューションです。

複雑なフローを実装している場合は、Spring Webflow を検討するのが適切なケースに見えます。そこでは、リクエストやセッションとは「異なる」スコープで保存され、まさにあなたが望むものに見えるフローレベルの変数を管理できます。

http://projects.spring.io/spring-webflow/

于 2014-03-12T09:44:08.950 に答える