問題タブ [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.
struts2 - execAndWait Interceptor が待機後に成功ページにリダイレクトしない
ユーザー入力の検証が行われるログイン画面があり、ユーザーは認証され、最終的にウェルカム画面にリダイレクトされます。
以下は、 のインターセプター定義ですLoginAction
。
以下はの実行方法ですLoginAction
:
このコードにはいくつかの問題があります。
1) 認証されたユーザーの場合、wait.jsp
ページは表示されますが、リダイレクトWelcome.jsp
は行われません。
2) 認証されていないユーザーの場合、次の例外が発生します。
java - Struts 2 の複数の JSP とアクションの間で値を保持する
私のStrutsプロジェクトの構造は次のとおりです。
page1
-> action1
-> page2
-> action2
->page3
私が必要とするのは、入力タグに入力した値page1
を でアクセスすることaction2
です。
これが私のコードです:
ページ1:
アクション1:
ページ2:
アクション2:
すべてを表示します
ページ3:
これは私が問題に直面している場所であり、そこtxtid
から値が からにnull
渡されていないと推測しましたpage2
action2
私が思いついた解決策は、使用することです
as inpage2
の値を使用できるようにする私の形式では、これは実際の解決策というよりもハックのように見えるため、他の提案は大歓迎です。txtid
txtid2
action2
java - Struts 2 FileUploadInterceptor の起動が遅すぎて、ファイル サイズとファイル拡張子を確認できない
Struts2 で適切に使用する方法がFileUploadInterceptor
わかりません。私はすべてを配線しており、動作しています。ファイル拡張子と最大ファイル サイズを指定でき、実際に機能します。問題は次のとおりです。
- 最大ファイル サイズを 100 MB に指定します
- ユーザーが 110MB のファイルを
JakartaMultiPartRequest
アップロードすると、クラスがヘルプ共通file-upload
ライブラリを使用してファイルのアップロードを処理することがわかります。これは、ファイル アップロード インターセプターの前に発生します。 - ユーザーが数分間待ってファイルのアップロードが完了すると、ファイル アップロード インターセプターが起動し、ファイルが大きすぎることをユーザーに通知します。
イベントの順序に問題があります。content-length ヘッダーを見て、(アップロードする前に) ファイルが大きすぎることをすぐにユーザーに伝えたいと思います。ヘッダーが常にあるとは限らないことは理解していますが、ある場合は使用したいと思います。
クラスを上書きする以外JakartaMultiPartRequest
に、これを行う方法がわかりません。
編集:私が理解しているシーケンスは次のとおりです。
- ユーザーは、ファイルのアップロードでサーバーにマルチパート リクエストを送信します。
- Struts2 の JakartaMultiPartRequest はリクエストを解析し、Struts2 temp フォルダーにアップロードします。
- フローは最終的に、最大ファイル サイズとファイル拡張子がチェックされるファイル アップロード インターセプターに到達します。
上記から、アップロードがステップ 2 で行われたことは明らかです。ファイル全体がサーバー上にあり、ファイルアップロードインターセプターがファイルが大きすぎることを検出した後でのみです。
java - Struts2 の validate メソッドで何も変更できないのはなぜですか?
Struts2 では、validate
メソッドはメソッドの前に呼び出されexecute
ます。validate
しかし、なぜメソッドのフィールド値を変更できないのでしょうか?
java - TokenHelper - トークン名 struts.token にマップされたトークンが見つかりませんでした
インターセプターを追加すると"execAndWait"
、上記のエラーが表示されます。
構成:
私が読んだように、これは警告であり、TokenHelper
クラスを変更することで回避できると誰かが言っています。もしそうなら、それを行う方法は?
java - Struts 2.3 Store Interceptor : ActionErrors を Interceptor から Action に渡す方法は?
私はStoreInterceptor
Struts 2 ドキュメントで について読んでおり、 の Action 定義に StoreInterceptor を貼り付ける方法について説明していますstruts-config.xml
が、それはうまく機能します。ActionErrors
ただし、それはアクション内で fromを作成して追加する場合です。
私の問題は、ログインが失敗した場合に次のようLoginInterceptor
に追加するを使用してログインを行っていることです。ActionError
それは問題なく追加されましたが、の後に呼び出されるLoginActionに到達するとLoginInterceptor
、.ValidationAwareSupport.actionErrors
null
このように を追加することで、 をリクエストまたはセッションにStoreInterceptor
保存すると考えました (またはパラメータを使用):ActionErrors
operationMode
"store"
"retreive"
しかし、それは機能していません。また、defaultStack に直接追加しようとしましたがStoreInterceptor
、どちらも機能しません。
StoreInterceptor
アクション間の保存だけでなくActionErrors
、インターセプターとアクション間の保存にも機能しますか?
java - OGNL を使用してアクション メソッドを呼び出す方法
OGNLを使用してアクションメソッドを呼び出す方法は?
helloAction.java
success.jsp
struts.xml
struts 2 OGNLから参照リンクを取得しました
このquote()
メソッドは呼び出されません。私は xwork-2.0.1.jar と ognl-2.6.11.jar を使用しています。
struts2 - Struts 2 インターセプターで HttpServletRequest を取得する
インターセプターでを取得するHttpServletRequest
には、以下のコードを使用しました:
インターセプターに実装しようとしServletRequestAware
ましたが、うまくいきませんでした。
HttpServletRequest
インターセプターに乗るより良い方法はありますか?!
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()
れますか?