私は Struts2 とPreparable
インターフェースを実装するアクションを使用しています。
フォームを送信すると、アクション プロパティがprepare()
アクション メソッドに設定されません。アクション メソッドで値を取得しますが (例: execute()
)、prepare()
メソッドでは空です。
prepare()
メソッドを実行する前にプロパティ セットを取得するにはどうすればよいですか?
私は Struts2 とPreparable
インターフェースを実装するアクションを使用しています。
フォームを送信すると、アクション プロパティがprepare()
アクション メソッドに設定されません。アクション メソッドで値を取得しますが (例: execute()
)、prepare()
メソッドでは空です。
prepare()
メソッドを実行する前にプロパティ セットを取得するにはどうすればよいですか?
デフォルトの Interceptor スタックでは、Prepare Interceptor は Parameters Interceptor の前に実行されます。これは、Prepare Interceptor がメソッドを実行するときに、パラメーターの注入がまだ行われていないことを意味しますprepare()
。パラメーター インターセプターを準備インターセプターの前に移動するか、それを複製して、準備インターセプターの前に 1 つの宣言を配置する必要があります。
その目的で作成されたデフォルトの Interceptor Stack がありますparamsPrepareParamsStack
。詳しくはこちらとこちらをご覧ください。
この種の問題は Struts2 で再発することに注意してください。Interceptor スタックがどのように機能するか、およびすべての Interceptor が処理するビジネスを理解する必要があります。
たとえば、ModelDriven を使用している場合、またはWildcard Mapping を使用している場合に発生します。また、カスタム インターセプターを間違った場所に配置すると、確実に発生します。