Struts2学习笔记(四)——result结果类型
当Action类的方法处理请求后,会返回一个字符串(逻辑视图名),框架根据这个结果码选择对应的result,向用户输出,所以需要在struts.xml提供<result>元素定义结果页面,这个结果页面可以是局部结果页面或者全局结果页面。
1、 局部结果页面和全局结果页面
1)局部结果页面
<action name="result" class="cn.sunny.action.ResultAction">
<!-- 局部结果当前Action使用 -->
<result name="success">/result.jsp</result>
</action>
2)全局结果页面
<global-results>
<!-- 全局结果 当前包中 所有Action都可以用-->
<result name="success">/result.jsp</result>
</global-results>
- 如果Struts2程序在运行过程中发现addFieldError()中有信息或类型转换失败或输入校验失败等情况,那么它会自动跳转到name值为input的结果页面中,如果没有提供name值为input的<result>,那么发生错误时,将直接在浏览器中提示404错误;
- 如果jsp页面中表单是用普通<form>编写的,发生错误而返回该页面时,则原数据将消失
- 如果jsp页面中表单是用<s:form>编写的,发生错误而返回该页面时,则原数据仍存在
2、结果页面跳转类型
在struts-default.xml定义了一些<result>中的type属性的结果页面类型,默认的type类型是dispatcher转发,type属性类型:
<result-types>
<!--用来处理Action链-->
<result-type name="chain" class="com.opensymphony.xwork2.ActionChainResult"/>
<!--用来转向页面,通常处理jsp-->
<result-type name="dispatcher" class="org.apache.struts2.dispatcher.ServletDispatcherResult" default="true"/>
<!--处理 FreeMarker 模板-->
<result-type name="freemarker" class="org.apache.struts2.views.freemarker.FreemarkerResult"/>
<!--控制特殊http行为的结果类型-->
<result-type name="httpheader" class="org.apache.struts2.dispatcher.HttpHeaderResult"/>
<!--重定向到一个URL-->
<result-type name="redirect" class="org.apache.struts2.dispatcher.ServletRedirectResult"/>
<!--重定向到一个 Action-->
<result-type name="redirectAction" class="org.apache.struts2.dispatcher.ServletActionRedirectResult"/>
<!--向浏览器发送 InputSream 对象,通常用来处理文件下载,还可用于返回 AJAX 数据。-->
<result-type name="stream" class="org.apache.struts2.dispatcher.StreamResult"/>
<!--处理 Velocity 模板-->
<result-type name="velocity" class="org.apache.struts2.dispatcher.VelocityResult"/>
<!--处理 XML/XLST 模板-->
<result-type name="xslt" class="org.apache.struts2.views.xslt.XSLTResult"/>
<!--显示源文件内容,如文件源码-->
<result-type name="plainText" class="org.apache.struts2.dispatcher.PlainTextResult" />
</result-types>
所以type属性可以取的值有:chain、dispatcher、freemarker、httpheader、redirect、redirectAction、stream、velocity、xslt、plainText。
Struts2学习笔记(四)——result结果类型的更多相关文章
- javascript学习笔记(四) Number 数字类型
		数字格式化方法toFixed().toExponential().toPrecision(),三个方法都四舍五入 toFixed() 方法指定小数位个数 toExponential() 方法 用科学 ... 
- struts2学习笔记之七:Result类型
		一:关于Struts2的type类型,也就是Result类型,他们都实现了共同的接口Result,都实现了execute方法 他们体现了策略模式,具体Result类型参见:struts-default ... 
- Struts2学习笔记(三):result配置的各项视图转发类型
		Struts 1: <action path="/user" type="org.sunny.user.action.UserAction" ...> ... 
- Struts2 学习笔记 10 Result部分 part1
		1.关于Result我们首先来学习一下结果类型 result type. 先来看struts.xml. struts.xml <?xml version="1.0" enco ... 
- Struts2 学习笔记 11 Result part2
		之前学习了result type 和global result 我们现在来说一下 1.Dynamic Result动态结果集.先来看一下小项目的目录 首页的两个链接访问user/user?type=1 ... 
- Struts2学习笔记四  OGNL
		OGNL,全称为Object-Graph Navigation Language(对象图表达语言),它是一个功能强大的表达式语言,用来获取和设置Java对象的属性,调用java对象的方法,同时能够自动 ... 
- Struts2学习笔记四:深入拦截器
		一:拦截器的工作原理 拦截器的执行过程可以类比filter过滤器,ActionInvocation实例执行过程中,先执行action实例上引用的拦截器们,然后才执行action实例处理请求,返回res ... 
- struts2学习笔记四
		一.contextMap中的数据操作 root根:List 元素1 元素2 元素3 元素4 元素5 contextMap:Map key value application Map key value ... 
- Struts2学习笔记⑧
		今天是Struts2学习笔记的最后一篇文章了.用什么做结尾呢,这两天其实还学了很多东西,没有记录下,今天就查漏补缺一下. 文件上传与下载.FreeMarker以及昨天没做完的例子 文件上传与下载 文件 ... 
随机推荐
- 分享一个废弃已久的插件架构 (.Net)
			框架介绍 1:将插件暴露的页面数据接口复用到任何 WebForm和Mvc 架构的系统. 2:插件可在线卸载,发布,更新. 3:插件可分布式 独立 部署. 4:插件之间完全解耦,通过Url跳转 相互不需 ... 
- ES6 新增命令
			let 用来声明变量.它的用法类似于var,但是所声明的变量, 只在let命令所在的代码块内有效. 例: {var a=10; let b=20;}; console.lo ... 
- tcp入门(唐唐的故事)
			1,互联网的实现,分成好几层.每一层都有自己的功能,就像建筑物一样,每一层都靠下一层支持.把互联网分成五层,容易让人理解. 2,对这五层的理解(唐唐讲故事): 实体层:目的就是把计算机连接起来,用电气 ... 
- 小程序开发教程:wx.setTopBarText(OBJECT)
			状态信息展示 当小程序被显示在聊天顶部时,开发者可将重要的状态变更信息实时展示出来,便于用户及时获知. 详见文档:小程序文档 小程序更新之后,有个更有用的功能!支持状态栏实时状态更新!! wx.set ... 
- 谈谈localhost与127.0.0.1
			localhost意为本地主机,指这台计算机,是给回路网络接口的标准主机名,对应的IP地址为127.0.0.1,可访问本地服务器的web项目(http://localhost). 那么它们有什么区别呢 ... 
- Docker进阶使用1
			容器间共享文件 Docker 的容器和外部环境是相对隔离的,并且容器是一次性的,运行结束后并不会有任何的持久化的文件或者数据.所以当我们需要做应用数据的持久化,或者保留应用的日志文件时,我们需要用到 ... 
- 新一代开源Android渠道包生成工具Walle
			本文转自:http://tech.meituan.com/android-apk-v2-signature-scheme.html 新一代开源Android渠道包生成工具Walle 新的应用签名方案A ... 
- 正则表达式小结(Regular Expressions)
			(原创文章,谢绝转载~) 日常开发中,常用正则表达式方便的进行匹配.筛选工作.正则的常用内容有: 一般情况下原则:从左至右,越多越好(贪婪) 字符:转义:\ ,如 \*,\d (数字)等 选择,cas ... 
- Python学习之数据类型
			整数 Python可以处理任意大小的整数,在程序中的表示方法和数学上的写法一模一样,例如:1,100,-8080,0,等等. 用十六进制表示整数比较方便,十六进制用0x前缀和0-9,a-f表示,例如: ... 
- informatica 学习总结
			问:什么是BI? 答:BI是商务智能,它包含的应用系统和技术较宽泛,通过收集,存储,分析和提供对数据的访问,来帮助企业用户做出更好的商务决策. BI应用包括决策支持,查询和报表,联机分析处理OLAP, ... 
