Struts2 @ResultPath註釋範例


在Struts 2中, @ResultPath 註解用於控制Struts2找到儲存的結果或JSP頁面。預設情況下,它會找到結果頁在 「WEB-INF/content/」 檔案夾。
不知道為什麼在Struts2注解設定 「WEB-INF/content/」 作為預設目錄, 但是大部分的應用並不將結果頁放入到 「WEB-INF/content/」 目錄. 可能Struts2慣例也並不是一個標準的檔案夾結構。 我一般是在 Struts 2 根路徑作為預設的檔案夾。

@ResultPath 範例

1. 預設結果路徑

在登入動作類,設定 「/User」 作為名稱空間, 並重定向到 「pages/login.jsp」 頁面。

P.S 假設struts2example是上下文servlet名稱

@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. 客製化結果路徑

如果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
現在Struts2將從不同的位置找到「login.jsp」結果頁面:
/Struts2Example/User/pages/login.jsp

全域性@ResultPath

@ResultPath只適用於類級別。在全域性範圍內應用它,可以在 struts.xml 檔案中進行組態。

struts.xml

<?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>

參考

  1. Struts 2 @ResultPath 註解文件