Struts2 @ResultPath注释示例 - Struts2教程
在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>