0

私は Struts2 とPreparableインターフェースを実装するアクションを使用しています。

フォームを送信すると、アクション プロパティがprepare()アクション メソッドに設定されません。アクション メソッドで値を取得しますが (例: execute())、prepare()メソッドでは空です。

prepare()メソッドを実行する前にプロパティ セットを取得するにはどうすればよいですか?

4

1 に答える 1

1

デフォルトの Interceptor スタックでは、Prepare Interceptor は Parameters Interceptor の前に実行されます。これは、Prepare Interceptor がメソッドを実行するときに、パラメーターの注入がまだ行われていないことを意味しますprepare()。パラメーター インターセプターを準備インターセプターの前に移動するか、それを複製して、準備インターセプターの前に 1 つの宣言を配置する必要があります。

その目的で作成されたデフォルトの Interceptor Stack がありますparamsPrepareParamsStack。詳しくはこちらこちらをご覧ください。

この種の問題は Struts2 で再発することに注意してください。Interceptor スタックがどのように機能するか、およびすべての Interceptor が処理するビジネスを理解する必要があります。

たとえば、ModelDriven を使用している場合、またはWildcard Mapping を使用している場合に発生します。また、カスタム インターセプターを間違った場所に配置すると、確実に発生します。

于 2015-05-21T07:43:40.337 に答える