1、Action返回字符串(逻辑视图名称)
<action> 元素中查找 逻辑视图名 对应 局部<result>
如果局部<result>不存在, 会查找全局<result> (每个package里都可以定义一些全局 <global-result>)
* 如果局部<result> 和全局 <global-result> 都没有找到 No result defined for xxx
2、配置<result> 每个result 有两个属性 name 和 type
默认type属性值 dispatcher
<result-type name="dispatcher" class="org.apache.struts2.dispatcher.ServletDispatcherResult" default="true"/> Action转发到结果页面
* request.setAttribute(name,value);
* request.getRequestDispatcher.forward();
<result-type name="redirect" class="org.apache.struts2.dispatcher.ServletRedirectResult"/> Action重定向到结果页面 不能传递 request中属性
<result-type name="redirectAction" class="org.apache.struts2.dispatcher.ServletActionRedirectResult"/> Actioon 重定向到另一个Action
* name="redirectAction" 和 name="redirect" 区别在于配置不同
Struts2 页面布局支持 JSP、FreeMarker、Velocity 等技术
<result-type name="freemarker" class="org.apache.struts2.views.freemarker.FreemarkerResult"/> 结果集采用freemarket技术
<result-type name="velocity" class="org.apache.struts2.dispatcher.VelocityResult"/> 结果集采用velocity
<result-type name="stream" class="org.apache.struts2.dispatcher.StreamResult"/> 文件下载
在企业开发中,Struts2 提供很好Ajax支持,将结果集定义 type="json"
3、使用转发和重定向
<result>/demo1.jsp</result> ---- 默认采用转发的方式访问demo1.jsp
<result type="redirect">/demo1.jsp</result> ----- 采用重定向的方式访问demo1.jsp
// redirectAction的使用
<action name="redirect" class="cn.itcast.struts2.demo7.RedirectActionDemo">
<result type="redirectAction">
<param name="actionName">hello2</param>
<param name="namespace">/demo2</param>
</result>
</action>