1 配置result

result的目的就是告诉Struts2框架,在执行完一个Action后,需要系统做什么?是把一个视图资源呈现给用户还是执行另外一个Action,result配置起到了一个“路标”的作用。
   result按照作用域范围可以分为局部result和全局result。

局部result:包含在Action定义中, result属性是一个Action的子元素。其作用范围只能在本Action中。

全局result:使用<global-result>来定义,其作用范围是所有的Action都可以使用。

其中type指定了result的类型,默认是dispatcher,该类型支持JSP视图技术。

对应子元素<param>,可以指定下面两个属性:
       location:该属性定义了该视图对应的实际视图资源
       parse:该参数指定是否可以在实际视图名字中使用OGNL表达式,Struts2框架默认该属性为true,即支持OGNL表达式。

如果没有指定result的name属性,则系统会默认为success;如果没有指定location属性,系统会把<result> </result>中间的字符串当作实际视图资源来处理。

2 result的类型

Struts2框架默认配置中已经提供了很多的result类型,可以打开struts-default.xml配置文件来查看。

chain:Action链式处理的结果类型,也就是将结果转发到这个action中。
   chart:整合JFreeChart的结果类型
   dispatcher:用于整合JSP的结果类型
   freemarker:用于整合freemarker结果类型。
   httpheader:用于控制特殊的HTTP行为的结果类型。
   jasper:用于JasperReports整合的结果类型
   jsf:用于整合JSF后的结果类型
   redirect:实际上dispatcher和redirect的区别就是在于转发和重定向的区别。
   redirect-action:用于直接redirect action。
   stream:用于向浏览器返回一个Inputstream(用于文件下载)
   tiles:用于整合Tiles后的结果类型。
   velocity:用于整合Velocity的结果类型。
   xslt:用于整合XML LT的结果类型。
   plaintext:用于显示某个页面的源代码。
  
   chain类型
   Struts2框架支持配置多个Action组成一个链或者工作流来处理用户的请求,而Action链的实现,是通过拦截器 ChainingInterceptor完成的。 ChainingInterceptor在源执行完毕后,将源Action的用户请求参数、值栈、session的数据赋值给目的Action,也就是 说,在执行多个Action过程中,参数都是保留的。Struts2框架并不推荐开发者使用这种Action链式的结果类型,该框架推荐使用 redirect-action类型。

redirect类型
   redirect结果类型与Struts2框架默认的结果类型dispatcher相对应。 到dispatcher类型是将请求转发到指定的视图资源,而redirect类型是重定向到指定的视图资源。重定向将会丢失所有的参数、值栈和请求属 性,即同时失去了Action的处理结果。而dispatcher是类型转发,将会把上述的所有数据资源转发给视图资源

redirect-action类型
   redirect-action结果类型与redirect结果类型非常相似,都是重新生成一个新的请求,都是重新定向。

chain

用来处理Action链

com.opensymphony.xwork2.ActionChainResult

dispatcher

用来转向页面,通常处理JSP

org.apache.struts2.dispatcher.ServletDispatcherResult

freemaker

处理FreeMarker模板

org.apache.struts2.views.freemarker.FreemarkerResult

httpheader

控制特殊HTTP行为的结果类型

org.apache.struts2.dispatcher.HttpHeaderResult

redirect

重定向到一个URL

org.apache.struts2.dispatcher.ServletRedirectResult

redirectAction

重定向到一个Action

org.apache.struts2.dispatcher.ServletActionRedirectResult

stream

向浏览器发送InputSream对象,通常用来处理文件下载,还可用于返回AJAX数据

org.apache.struts2.dispatcher.StreamResult

velocity

处理Velocity模板

org.apache.struts2.dispatcher.VelocityResult

xslt

处理XML/XLST模板

org.apache.struts2.views.xslt.XSLTResult

plainText

显示原始文件内容,例如文件源代码

org.apache.struts2.dispatcher.PlainTextResult

redirect-action

重定向到一个Action

org.apache.struts2.dispatcher.ServletActionRedirectResult

plaintext

显示原始文件内容,例如文件源代码

org.apache.struts2.dispatcher.PlainTextResult

转载于:https://www.cnblogs.com/lechance/p/4373283.html

structs2 result type介绍相关推荐

  1. Struts2中Result类型介绍

    1.在Struts2中,Result类型有12种,分别为dispatcher,redirect,chain,redirectAction,freemarker,httpheader,stream,ve ...

  2. 【web开发学习笔记】Structs2 Result学习笔记(三)带參数的结果集

    Result学习笔记(三)带參数的结果集 第一部分:代码 //前端 <head> <meta http-equiv="Content-Type" content= ...

  3. no result type defined for type 'dispatch'mapped

    自己打算弄个webwork测试问题时候,遇到个脑瘫的问题,配了xwork之后,死活找不到action,报There is no result type defined for type 'dispat ...

  4. Webwork2之Action Result Type(转载)

    和Webwork1.x不同,Webwork2的Action执行完后,其Result对应一个 Result Type,而这个Result Type完全可以根据具体应用或环境自己进行 定义,只需实现com ...

  5. 【问题解决】mybatis 类型不匹配两种解决办法 -Result type not match for select id=“selectUser“ srcType: com.kuang.pojo

    问题描述: Result type not match for select id="selectUser"srcType: com.kuang.pojo.UsertargetTy ...

  6. 面对不同种类的处理结果——result type=

    Struts2中有很多不同种类的处理结果,有action也有视图文件.比较常见的情景就是我们要一个action链接到另一个action应该怎么做呢?我在这里就做了一个小例子 JSP文件内容 <% ...

  7. MapStruct Unknown property “xx“ in result type XXX. Did you mean “null“?

    build报错 Unknown property "xx" in result type XXX. Did you mean "null"? 解决办法 pom. ...

  8. YOLOV5报错:RuntimeError: result type Float can‘t be cast to the desired output type long int

    YOLOV5训练时报错: Traceback (most recent call last):   File "train.py", line 626, in <module ...

  9. 训练yolo时报错RuntimeError: result type Float can‘t be cast to the desired output type __int64个人解决方案

    运行YOLOv5 6.1和yolor的时候,训练都没能正常运行,均出现了如下错误: AutoAnchor: 5.00 anchors/target, 1.000 Best Possible Recal ...

最新文章

  1. Leetcode 剑指 Offer 57 - II. 和为s的连续正数序列 (每日一题 20210809)
  2. Linux 下的常用工具
  3. Educational Codeforces Round 101 (Rated for Div. 2) F. Power Sockets 哈希 + 乱搞
  4. C++里数组名+1和数组名的地址+1的区别
  5. 决策树——ID3和C4.5
  6. 最后解密的两弹元勋,众帅之帅朱光亚。
  7. .NET中方法的注意事项 明细
  8. Quartus-Modelsim仿真方法
  9. 蓝桥杯历年(省赛)试题汇总及试题详解
  10. 全国所有省份行政区域名标准(全国省份2字母拼音缩写标准参考)
  11. Web项目上线超详细流程
  12. 互联网大数据时代下亚马逊是如何解决数据存储的
  13. 后台ui大全(有这些你就够了)
  14. airpods pro是按压还是触摸_使用AirPods Pro一个月后,我是这么看待它的
  15. NAMD靶向分子动力学模拟Target molecular dynamic stimulation(附conf文件)
  16. 当年轻人开始拼命戒抖音
  17. 创业可以做什么项目,六个轻资产创业项目推荐
  18. 微博内容爬取——陈一发儿微博实例
  19. Word进阶学习总结
  20. github开源代码gpl协议和lgpl协议的区别

热门文章

  1. Mybatis 框架源码解读(详细流程图+时序图)
  2. Python精通-Python字符串格式化操作
  3. php高德地图计算距离接口,路径长度-距离/面积计算-示例中心-JS API 示例 | 高德地图API...
  4. Go 函数的 Map 型参数,会发生扩容后指向不同底层内存的事儿吗?
  5. 基于CentOS7,MySQL5.7的主从复制架构搭建实战
  6. MySQL中AES_ENCRYPT('密码','钥匙')函数 可以对字段值做加密处理
  7. 放弃redis使用mongodb做任务队列支持增删改管理
  8. js判断是否以xxx结尾
  9. 性能测试 Performance Test
  10. 满意度指数能够告诉我们什么?