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以及昨天没做完的例子 文件上传与下载 文件 ...
随机推荐
- C# datatable 去重
若检索出的datatab有重复行,而在绑定下拉列表时不希望有重复行,可使用以下代码将数据表去重: this.cmbE_NENRYOU_SBT.DataSource = dt.DefaultView.T ...
- Jenkins2 插件 Pipeline+BlueOcean 实现持续交付的初次演练
需要完成的目标 使用Pipeline完成项目的checkout,package.deploy.restart 提取出公有部分封装为公有JOB 实现pipeline对其他JOB的调用和逻辑的判断 实现任 ...
- 2017年7月Web服务器调查报告
在2017年7月的调查中,我们收到了来自1,767,964,429个网站和6,593,508个面向web的计算机的反馈.这是一个小小的进步,网站的数量增加了100万个(+0.06%),面向web的计算 ...
- LeetCode-Palindrome Partitioning II[dp]
Palindrome Partitioning II Given a string s, partition s such that every substring of the partition ...
- 通过HtppWebRequest发送图片到服务器并保存
之前写的楼主没有测试,后来发现用起来有点小问题 就修改了一下,现在已经亲测可用 完全没有问题了 下面就开始贴代码了 首先将图片装换成功byte 数组 这个path是图片的路径 例如d:12.png ...
- Redis-消息发布与订阅
redis的消息发布与订阅适合做在线聊天, 消息推送 使用方法: 发布端: publish +频道名称 + 发布内容 订阅端: subscribe + 频道名称 发布端例子: 127.0.0.1:63 ...
- Intger To Roman
这题意思是将一个输入的整型阿拉伯数字转化为罗马数字. 思路是将1-10对应的罗马数字放在字符串数组里,然后发现数据变化规律即可,eg:389 = 300 + 89 +9 分别对应的罗马数字. publ ...
- Git时光机穿梭之删除文件
在Git中,删除也是一个修改操作,我们实战一下,先添加一个新文件test.txt到Git并且提交: $ git add test.txt $ git commit -m "add test. ...
- 转:SpringMVC浅谈
因为项目文案需要,于是乎翻阅spring相关资料.顿觉该篇不错详尽易懂,特转载之. 转载出处: http://blog.csdn.net/gane_cheng/article/details/5278 ...
- 常用 Http 的请求方法
第一次用markdown写博客,体验下 因为常用Http的几种请求方式,总结一下. 1.封装两个Http的最常用方法,叫做HttpHelper类. HttpPost: public static st ...