0

Web アプリケーションで Struts 2 を使用しています。

通常、アプリケーションの struts フィルタは URL パターンで *.do を探します。

追加の要件があります。アプリケーションの入力時

       http://appname:port/login.jsp   

、 login.jsp を表示するかどうかの決定はビジネス ルールに基づいています。

したがって、理想的には、この URL パターンをフィルタリングして、Struts アクション (LoginDecideAction と呼びましょう) を介して送信する必要があります。

ステップ 1 は、web.xml のフィルター URL パターンに URL パターンを追加することです。では、この URL パターン '*login.jsp' が LoginDecideAction にマップされることをどのように主張すればよいでしょうか。

私は Struts 2 が初めてです。助けていただければ幸いです。

4

2 に答える 2

2

これを行うにはいくつかの方法があります。まず、ジェームズの答えを少し詳しく説明します。

(S2.0は現在かなり古いものですが、現在のアクションタグのドキュメントは次のとおりです)。

ファイルを公開しlogin.jsp(つまり、ファイルを下に置かないでくださいWEB-INF)、その<s:action>中のタグを使用してを実行しLoginDecideActionます。アクション内のロジックは次に何が起こるかを決定しますが、このexecuteResult="true"手法を使用するlogin.jspことは、ウィンドウの場所を設定するJavaScriptがない限り、何が起こるかはURLに含まれることを意味します。

IMOこれは少し不格好です(そして私はactionタグの大ファンではありません)。むしろ、JSPページは、JSPページをレンダリングするアクション、またはビジネスロジックで必要とされる場合は別のJSPページをレンダリングするアクションに即座にリダイレクトしたいと思います。

おそらくあなた言っていることを実行し、プロパティを使用して拡張子として.jsp設定することでS2に実際にリクエストを処理させることができます(詳細についてはデフォルトのファイルドキュメントを参照してください。しかし、その場合はアクションを作成する必要があります。他のリクエストはS2などによって処理されなかったこと。おそらくそれだけの価値はありません。jspstruts.action.extensionstruts.properties.jsp

于 2011-10-17T03:59:01.333 に答える
1

login.jspを表示できる場合は、s:actionタグを追加して、ビジネスロジックを処理できるStrutsアクションを呼び出します。ビューを表示するには、を使用しますexecuteResult="true"。s:actionの詳細については、以下のリンクを参照してください。

http://struts.apache.org/2.0.14/docs/action.html

于 2011-10-16T06:49:13.117 に答える