位置:首頁 > Java技術 > Struts2教學 > Struts2 @ResultPath注釋示例

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 注解文檔