当前位置:首页 > struts2中常用Result类型
struts2中常用Result类型的用法 关键字: struts2 一、dispatcher
(1)为缺省的result类型,一般情况下我们在struts.xml会这么写:
? ? 第一个默认:type=\;第二个默认:设置的为location参数,location只能是页面,不能是另一个action(可用type=\解决)。 (2)实现方式 从doExecute方法看出,有三个出口(finalLocation为要跳转的地址): pageContext.include(finalLocation); dispatcher.forward(request, response); (dispatcher是根据finalLocation创建的) dispatcher.include(request, response); 而我们知道,forward与include都是转发到context内部的资源。 二、redirect (1)可以重定向到一个页面,另一个action或一个网址。 ? 查看doExecute方法,只有一个出口: response.sendRedirect(finalLocation); sendRedirect是重定向,是重新产生一个HTTP请求到服务器,故重定向后其原来所在的action上下文就不可用了。 三、chain (1)主要用于把相关的几个action连接起来,共同完成一个功能。 ? ? ? 查看execute()方法,主要思想如下: // 根据Action名称finalActionName及要调用的方法finalMethodName来new一个代理对象proxy,并执行之 ? proxy = actionProxyFactory.createActionProxy(finalNamespace, ? finalActionName, finalMethodName, extraContext); ? proxy.execute(); (3)多个action间数据的传递 主要有两种方式: 1。由于处于chain中的action属于同一个http请求,共享一个ActionContext,故可以在上下文中获取,在页面上可以直接使用。手动获取的方法如下: ? HttpServletRequest request = ServletActionContext.getRequest(); ? String s=(String)request.getAttribute(\ 2。实现ModelDriven接口 在Step1Action中,加入getModel: ? public Object getModel() { ? return message; ? } 在Step2Action中,加入setModel: ? public void setModel(Object o){ ? System.out.println(\ ? } 注意,setModel的调用先于execute()方法后于构造方法。
共分享92篇相关文档