先实现一个类去继承StrutsResultSupport,baseAction继承了ActionSupport
public class SysResultAction extends StrutsResultSupport{ @Override protected void doExecute(String finalLocation, ActionInvocation invocation) throws Exception { HttpServletRequest request = ServletActionContext.getRequest(); HttpServletResponse response = ServletActionContext.getResponse(); System.out.println("finalLocation="+finalLocation); System.out.println("(BaseAction)invocation.getAction()="+(baseAction)invocation.getAction()); System.out.println("进入了 SysResultAction ..."); //eg redirect String baseURl = request.getContextPath() + finalLocation.replace("WEB-INF/", ""); String RedirectUrl = baseURl.substring(0,baseURl.lastIndexOf("/")+1); response.sendRedirect( RedirectUrl + "test_TAction.do" ); } }
在修改struts2核心配置配置文件
<!-- 配置全局结果及异常映射 配置文件包--> <package name="base-default" extends="struts-default" > <!-- 自定义结果集类型 --> <result-types> <result-type name="myRedirectResult" class="cn.terry.commons.exception.SysResultAction"></result-type> </result-types> <!-- 全局结果集 --> <global-results> <result name="MRR" type="myRedirectResult">/WEB-INF/test/test.jsp</result> <result name="sysError">/WEB-INF/jsp/error.jsp</result> <result name="input">/WEB-INF/jsp/error.jsp</result> </global-results> <!-- 全局错误结果集 --> <global-exception-mappings> <exception-mapping result="sysError" exception="cn.terry.commons.exception.SysException"></exception-mapping> <exception-mapping result="input" exception="java.lang.Exception"></exception-mapping> </global-exception-mappings> </package>
在添加action
public class userAction extends baseAction { // 自定义返回结果类型定义,会输出定义的内容 public String defineResult() throws Exception { return "MRR"; } }
访问 项目名称(/斜线不能少)加 nsfw/user/user_defineResult.do 就会跳转到测试页面
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于