Struts2 @ResultPath注释示例
精华
小牛编辑
118浏览
2023-03-14
在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>
参考
- Struts 2 @ResultPath 注解文档