問題タブ [struts2-interceptors]

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.

0 投票する
3 に答える
2582 参照

struts2 - execAndWait Interceptor が待機後に成功ページにリダイレクトしない

ユーザー入力の検証が行われるログイン画面があり、ユーザーは認証され、最終的にウェルカム画面にリダイレクトされます。

以下は、 のインターセプター定義ですLoginAction

以下はの実行方法ですLoginAction

このコードにはいくつかの問題があります。

1) 認証されたユーザーの場合、wait.jspページは表示されますが、リダイレクトWelcome.jspは行われません。

2) 認証されていないユーザーの場合、次の例外が発生します。

0 投票する
1 に答える
3718 参照

java - Struts 2 の複数の JSP とアクションの間で値を保持する

私のStrutsプロジェクトの構造は次のとおりです。

page1-> action1-> page2-> action2->page3

私が必要とするのは、入力タグに入力した値page1を でアクセスすることaction2です。

これが私のコードです:

ページ1:

アクション1:

ページ2:

アクション2:

すべてを表示します

ページ3:

これは私が問題に直面している場所であり、そこtxtidから値が からにnull渡されていないと推測しましたpage2action2

私が思いついた解決策は、使用することです

as inpage2の値を使用できるようにする私の形式では、これは実際の解決策というよりもハックのように見えるため、他の提案は大歓迎です。txtidtxtid2action2

0 投票する
0 に答える
614 参照

java - Struts 2 FileUploadInterceptor の起動が遅すぎて、ファイル サイズとファイル拡張子を確認できない

Struts2 で適切に使用する方法がFileUploadInterceptorわかりません。私はすべてを配線しており、動作しています。ファイル拡張子と最大ファイル サイズを指定でき、実際に機能します。問題は次のとおりです。

  1. 最大ファイル サイズを 100 MB に指定します
  2. ユーザーが 110MB のファイルをJakartaMultiPartRequestアップロードすると、クラスがヘルプ共通file-uploadライブラリを使用してファイルのアップロードを処理することがわかります。これは、ファイル アップロード インターセプターの前に発生します。
  3. ユーザーが数分間待ってファイルのアップロードが完了すると、ファイル アップロード インターセプターが起動し、ファイルが大きすぎることをユーザーに通知します。

イベントの順序に問題があります。content-length ヘッダーを見て、(アップロードする前に) ファイルが大きすぎることをすぐにユーザーに伝えたいと思います。ヘッダーが常にあるとは限らないことは理解していますが、ある場合は使用したいと思います。

クラスを上書きする以外JakartaMultiPartRequestに、これを行う方法がわかりません。

編集:私が理解しているシーケンスは次のとおりです。

  1. ユーザーは、ファイルのアップロードでサーバーにマルチパート リクエストを送信します。
  2. Struts2 の JakartaMultiPartRequest はリクエストを解析し、S​​truts2 temp フォルダーにアップロードします。
  3. フローは最終的に、最大ファイル サイズとファイル拡張子がチェックされるファイル アップロード インターセプターに到達します。

上記から、アップロードがステップ 2 で行われたことは明らかです。ファイル全体がサーバー上にあり、ファイルアップロードインターセプターがファイルが大きすぎることを検出した後でのみです。

0 投票する
2 に答える
1109 参照

java - Struts2 の validate メソッドで何も変更できないのはなぜですか?

Struts2 では、validateメソッドはメソッドの前に呼び出されexecuteます。validateしかし、なぜメソッドのフィールド値を変更できないのでしょうか?

0 投票する
1 に答える
2936 参照

java - TokenHelper - トークン名 struts.token にマップされたトークンが見つかりませんでした

インターセプターを追加すると"execAndWait"、上記のエラーが表示されます。

構成:

私が読んだように、これは警告であり、TokenHelperクラスを変更することで回避できると誰かが言っています。もしそうなら、それを行う方法は?

0 投票する
1 に答える
1165 参照

java - Struts 2.3 Store Interceptor : ActionErrors を Interceptor から Action に渡す方法は?

私はStoreInterceptorStruts 2 ドキュメントで について読んでおり、 の Action 定義に StoreInterceptor を貼り付ける方法について説明していますstruts-config.xmlが、それはうまく機能します。ActionErrorsただし、それはアクション内で fromを作成して追加する場合です。

私の問題は、ログインが失敗した場合に次のようLoginInterceptorに追加するを使用してログインを行っていることです。ActionError

それは問題なく追加されましたが、のに呼び出されるLoginActionに到達するとLoginInterceptor、.ValidationAwareSupport.actionErrorsnull

このように を追加することで、 をリクエストまたはセッションにStoreInterceptor保存すると考えました (またはパラメータを使用):ActionErrorsoperationMode "store""retreive"

しかし、それは機能していません。また、defaultStack に直接追加しようとしましたがStoreInterceptor、どちらも機能しません。

StoreInterceptorアクション間の保存だけでなくActionErrors、インターセプターとアクション間の保存にも機能しますか?

0 投票する
2 に答える
2997 参照

java - OGNL を使用してアクション メソッドを呼び出す方法

OGNLを使用してアクションメソッドを呼び出す方法は?

helloAction.java

success.jsp

struts.xml

struts 2 OGNLから参照リンクを取得しました

このquote()メソッドは呼び出されません。私は xwork-2.0.1.jar と ognl-2.6.11.jar を使用しています。

0 投票する
4 に答える
11000 参照

struts2 - Struts 2 インターセプターで HttpServletRequest を取得する

インターセプターでを取得するHttpServletRequestには、以下のコードを使用しました:

インターセプターに実装しようとしServletRequestAwareましたが、うまくいきませんでした。

HttpServletRequestインターセプターに乗るより良い方法はありますか?!

0 投票する
2 に答える
2598 参照

java - `invocation.invoke()` を呼び出す複数の Struts2 インターセプターを使用するにはどうすればよいですか?

struts 2 アクション内に複数のネストされたインターセプターがあるとします。

  • ふー
    • バー
      • バズ

各インターセプターは、intercept()メソッドで次のことを行っています

invocation.invoke()が呼び出されると、これはキュー内の次のインターセプターのメソッドを呼び出しますintercept()か、それとも実際にaction.execute()メソッドを呼び出しますか?

たとえば、 の場合、これは をfoo呼び出しますか、それとも実際に を呼び出しますか?invocation.invoke()bar.intercept()action.execute()

後者の場合、bar.intercept()or baz.intercept()(bar インターセプターから呼び出された場合) を before に呼び出すにはどうすればよいですか?action.execute()つまり、すべてのインターセプターが呼び出される前に実行さaction.execute()れますか?