Struts 2 @ResultPath注釈の例
Struts 2では、
@ ResultPathアノテーション
を使用して、Struts 2が格納された結果またはJSPページを見つける場所を制御します。デフォルトでは、 ”
WEB-INF/content/
“フォルダから結果ページが検索されます。
なぜStruts 2の注釈がデフォルトのフォルダとして “WEB-INF/content/”を設定したのか分かりませんが、ほとんどのアプリケーションは結果ページをこの “WEB-INF/content/”フォルダに入れません。これは標準的なフォルダ構造ではなく、Struts 2の規約です。私はむしろStruts 2がデフォルトのフォルダとしてルートパスを置きました。
@ResultPathの例
1.デフォルトのResultPath
ログインアクションクラス。 ”
/User
“名前空間に設定し、 ”
pages/login.jsp
“ページにリダイレクトします。
P.S Struts2Exampleがコンテキストサーブレット名であると仮定します
@Namespace("/User") @Result(name="success",location="pages/login.jsp") public class LoginAction extends ActionSupport{ }
それにアクセスする
http://localhost:8080/Struts2Example/User/login.action
Struts 2はデフォルトの場所から ”
login.jsp
“の結果ページを見つけます
…./Struts2Example/WEB-INF/content/User/pages/login.jsp
=== 2.カスタムResultPath JSPの結果ページが別の場所に格納されている場合は、** @ ResultPath ** アノテーションを使用して変更できます。
@Namespace(“/User”)
@ResultPath(value=”/”)
@Result(name=”success”,location=”pages/login.jsp”)
public class LoginAction extends ActionSupport{
}
もう一度アクセスする
Struts 2は、異なる場所から "** login.jsp ** "結果ページを見つけます ..../Struts2Example/User/pages/login.jsp
グローバル@ResultPath
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <constant name="struts.convention.result.path" value="/"/> </struts>
リファレンス
2 @ResultPath注釈のドキュメント]