Struts 2 @ResultPath注釈の例

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