1

タイルでStruts2.1.6を使用する。

Struts2のアクションで奇妙な動作に気づいています。アクションの1つ(view()など)にブレークポイントを設定しています。アプリケーションサーバーを初めて起動するときに、このアクションを実行するWebアプリのリンクをクリックすると、デバッガーがブレークポイントで停止し、問題のトラブルシューティングを行うことができます。例外が発生し、メッセージがUIに表示されます。

ただし、同じリンクをもう一度クリックすると、デバッガーはブレークポイントに到達せず、UIに同じエラーメッセージが表示されます。他のリンクをクリックすると、他のデバッグポイントは完全に正常に機能します。同じURLをもう一度クリックすると、同じメッセージが表示されます。サーバーを再起動して、プロセスをもう一度繰り返す必要があります。

何かがどこかにキャッシュされていますか?ストラットアクションの新しいインスタンスが作成されていないと思いますか?これをトラブルシューティングするにはどうすればよいですか?必要な具体的な情報がわからないため、まだコードを投稿していません...

ページネーションの目的でセッションにオブジェクトを保存していますが、それが問題になる可能性がありますか?

4

1 に答える 1

1

私があなたの説明から読んだことは、問題がコードのどこかにあるようです.各リクエストstruts2で、アクションクラスの新しいインスタンスとリクエストとレスポンスを作成し、それらを値スタックに配置するため、最後の実行の結果が何であったとしても、新しいリクエストは常に新しいインスタンスを作成することになります。

アクションはデータ転送オブジェクト (モデル) としても機能するため、新しいインスタンスの作成はフレームワーク アーキテクチャに従って行われます。

構成を確認して、正確にどこに問題があるかを確認することをお勧めします。

補足として、Strts2-spring プラグインを使用しています。プラグインを使用する必要がある場合は、scope=prototypeelse spring をデフォルトで設定すると、シングルトン アクション インスタンスが作成され、同じ Action インスタンスが何度も使用されます。

于 2012-09-05T03:16:08.023 に答える