位置:首页 > > 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 注解文档