Struts 2 @ResultPathアノテーションの例
Struts 2では、@ResultPath annotationを使用して、Struts2が保存された結果または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 Assume the Struts2Example is your context servlet name
@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{ }
再度アクセスする
http://localhost:8080/Struts2Example/User/login.action
これで、Struts 2は別の場所から「login.jsp」結果ページを見つけます。
/Struts2Example/User/pages/login.jsp
グローバル@ResultPath
@ResultPathは、クラスレベルにのみ適用されます。 グローバルに適用するには、struts.xmlファイルで構成できます。
struts.xml