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>