Struts2框架提供的结果类型?
已配置结果类型名 |
类 名 |
描 述 |
dispatcher |
org.apache.struts2.dispatcher. |
默认结果类型,用来呈现JSP页面 |
chain |
com.opensymphony.xwork2. |
将action和另外一个action链接起来 |
freemarker |
org.apache.struts2.views.freemarker. |
呈现Freemarker模板 |
httpheader |
org.apache.struts2.dispatcher. |
返回一个已配置好的HTTP头信息响应 |
redirect |
org.apache.struts2.dispatcher. |
将用户重定向到一个已配置好的URL |
redirectAction |
org.apache.struts2.dispatcher. |
将用户重定向到一个已定义好的action |
stream |
org.apache.struts2.dispatcher. |
将原始数据作为流传递回浏览器端, 图片非常有用 |
velocity |
org.apache.struts2.dispatcher. |
呈现Velocity模板 |
xslt |
org.apache.struts2.views.xslt. |
呈现XML到浏览器, 过XSL模板进 行转换 |
plaintext |
org.apache.struts2.dispatcher. |
返回普通文本类容 |
简单说明一下result的name属性和type属性:
SUCCESS:Action正确的执行完成,返回相应的视图,success是name属性的默认值。
NONE:表示Action正确的执行完成,但并不返回任何视图。
ERROR:表示Action执行失败,返回到错误处理视图。
INPUT:Action的执行,需要从前端界面获取参数,INPUT就是代表这个参数输入的界面,一般在应用中,会对这些参数进行验证,如果验证没有通过,将自动返回到该视图。
Invalid.token:表单重复提交,拦截器token
LOGIN:Action因为用户没有登陆的原因没有正确执行,将返回该登陆视图,要求用户进行登陆验证。
dispatcher:请求转发,底层调用RequestDispatcher的forward()或include()方法,dispatcher是 type属性的默认值,通常用于转向一个JSP。localtion指定JSP的位置,parse如果为false表示location的值不会被当作 OGNL解析,默认为true。
redirect:重定向,新页面无法显示Action中的数据,因为底层调用response.sendRedirect("")方法,无法共享请求范围内的数据,参数与dispatcher用法相同。
redirect-action:重定向到另一个Action,参数与chain用法相同,允许将原Action中的属性指定新名称带入新Action 中,可以在Result标签中添加 <param name=”b”>${a} </param>,这表示原Action中的变量a的值被转给b,下一个Action可以在值栈中使用b来操作,注意如果值是中文,需要做一些编码处理,因为Tomcat默认是不支持URL直接传递中文的!
velocity:使用velocity模板输出结果,location指定模板的位置(*.vm),parse如果为false,location不被OGNL解析,默认为true。
xslt:使用XSLT将结果转换为xml输出,location指定*.xslt文件的位置,parse如果为false,location不被 OGNL解析,默认为true。matchingPattern指定想要的元素模式,excludePattern指定拒绝的元素模式,支持正则表达式,默认为接受所有元素。
httpheader:根据值栈返回自定义的HttpHeader,status指定响应状态(就是指response.sendError(int i)重定向到500等服务器的状态页)。parse如果为false,header的值不会被OGNL解析,headers,加入到header中的值,例如: <param name=”headers.a”>HelloWorld </param>。可以加多个,这些键-值组成HashMap。
freemaker:用freemaker模板引擎呈现视图,location指定模板(*.ftl)的位置,parse如果为false,location的值不会被OGNL解析。contentType指定以何中类型解析,默认为text/html。
chain:将action的带着原来的状态请求转发到新的action,两个action共享一个ActionContext,actionName指定转向的新的Action的名字。method指定转向哪个方法,namespace指定新的Action的名称空间,不写表示与原Action在相同的名称空间;skipActions指定一个使用 , 连接的Action的name组成的集合,一般不建议使用这种类型的结果。
stream:直接向响应中发送原始数据,通常在用户下载时使用,contentType指定流的类型,默认为 text/plain,contentLength以byte计算流的长度,contentDisposition指定文件的位置,通常为 filename=”文件的位置”,input指定InputStream的名字,例如:imageStream,bufferSize指定缓冲区大小,默认为1024字节。
plaintext:以原始文本显示JSP或者HTML,location指定文件的位置,charSet指定字符集。
Struts2框架提供的结果类型?的更多相关文章
- Struts2框架action层学习心得体会
在struts2框架中,当action处理完之后,就应该向用户返回结果信息,该任务被分为两部分:结果类型和结果本身. 结果类型提供了返回给用户信息类型的实现细节.结果类型通常在Struts2中就已预定 ...
- Struts2框架学习(三) 数据处理
Struts2框架学习(三) 数据处理 Struts2框架框架使用OGNL语言和值栈技术实现数据的流转处理. 值栈就相当于一个容器,用来存放数据,而OGNL是一种快速查询数据的语言. 值栈:Value ...
- Struts2框架的基本使用
前面已经介绍过了MVC思想,Struts2是一个优秀的MVC框架,大大降低了各个层之间的耦合度,具有很好的扩展性.从本篇开始我们学习Struts2的基本用法,本篇主要包括以下内容: Stru ...
- [ SSH框架 ] Struts2框架学习之二
一.Struts2访问Servlet的API 前面已经对 Struts2的流程已经执行完成了,但是如果表单中有参数如何进行接收又或者我们需要向页面保存一些数据,又要如何完成呢?我们可以通过学习 Str ...
- 在Struts2框架中使用Servlet的API
1. 在Action类中也可以获取到Servlet一些常用的API * 需求:提供JSP的表单页面的数据,在Action中使用Servlet的API接收到,然后保存到三个域对象中,最后再显示到JSP的 ...
- struts2框架 转载 精华帖
一.Struts2简介 参考<JavaEE 轻量级框架应用与开发—S2SH> Struts框架是流行广泛的一个MVC开源实现,而Struts2是Struts框架的新一代产品,是将Strut ...
- 2018.12.19 Struts2 框架总复习
总结Struts2 框架 struts2技术的优势 项目开源,使用及拓展方便 提供Exception处理机制 Result方式的页面导航,通过Result标签很方便的实现重定向和页面跳转 通过简单.集 ...
- 7.Struts2框架封装数据
Struts2框架提供了很强大的数据封装的功能,不再需要使用Servlet的API完成手动封装了!! 第一种方式:属性驱动 > 提供对应属性的set方法进行数据的封装.--经常使用 * 表单的哪 ...
- Struts2 框架验证
struts2框架验证(xml方式): * 首先要从页面中获取对应的标签name属性的值,在动作类action中声明同名的属性,提供get和set方法 * 创建一个xml格式验证文 ...
随机推荐
- Typora下载及MarkDown语法详解
写博客的重要性 作为一名程序员,写博客已经成了一项基本技能和素养.为什么要写博客?因为它能将我们学习的知识总结起来,提高我们对知识的深层次理解,还能将我们所学知识记录下来,以便于以后回忆.要想写博客, ...
- Java -- int与String相互转换
int转换为String 使用Integer的静态方法 Integer.toString(int num); 空值会抛出NullPointerException异常 使用String的静态方法 Str ...
- 小白学python第2问: 为什么只有int,没有long?
为什么只有int,没有long? 在python官网开发者指引里面能找到 PEP 237 -- Unifying Long Integers and Integers,这里说明了为什么要统一 int ...
- Excel:如何在间断的序号间插入空行
https://jingyan.baidu.com/article/e6c8503cb7ad7de54e1a1851.html
- Python:用正则表达式,提取字符串中的所有中文
import re def clean(line): pattern = re.compile(u'[^\u4e00-\u9fa5]') #中文的范围为\u4e00-\u9fa5 line = re. ...
- Java中ArrayList和LinkedList的异同
一:ArrayList和LinkedList的大致区别如下: 1.ArrayList是实现了基于动态数组的数据结构,ArrayList实现了长度可变的数组,在内存中分配连续的空间.遍历元素和随机访问元 ...
- c# 通过HttpListener创建HTTP服务
在c#中可以利用HttpListener来自定义创建HTTP服务,通过http协议进行服务端与多个客户端之间的信息传递,并且可以做成windows系统服务,而不用寄宿在IIS上.以下为一个demo,分 ...
- WPF界面语言切换
举例中英文切换: 一.静态切换(每次切换需要重启应用) 1. 新建一个WPF APP(.NET Framework)项目,StaticLanguageSelect 2. 右击项目名,添加New Ite ...
- jq全选、全不选、反选、单删、批量删除
<!DOCTYPE html><html> <head> <meta charset="utf-8" /> <title> ...
- thinkpad笔记本选型
ThinkPad分为了几大系列,低端的有L系列.E系列,比较高端的有T系列.X系列及P系列,这些系列中质量比较稳定属于商务办公系列,中端有针对商务或者是娱乐的R系列.A系列和S系列.具体介绍如下: 1 ...