zoukankan      html  css  js  c++  java
  • Struts2学习笔记(四)——result结果类型

    当Action类的方法处理请求后,会返回一个字符串(逻辑视图名),框架根据这个结果码选择对应的result,向用户输出,所以需要在struts.xml提供<result>元素定义结果页面,这个结果页面可以是局部结果页面或者全局结果页面。

    1、 局部结果页面和全局结果页面

    1)局部结果页面

    1 <action name="result" class="cn.sunny.action.ResultAction">
    2     <!-- 局部结果当前Action使用 -->
    3     <result name="success">/result.jsp</result> 
    4 </action>

    2)全局结果页面

    1 <global-results>
    2     <!-- 全局结果 当前包中 所有Action都可以用-->
    3     <result name="success">/result.jsp</result>
    4 </global-results>
    • 如果Struts2程序在运行过程中发现addFieldError()中有信息或类型转换失败或输入校验失败等情况,那么它会自动跳转到name值为input的结果页面中,如果没有提供name值为input的<result>,那么发生错误时,将直接在浏览器中提示404错误;
    • 如果jsp页面中表单是用普通<form>编写的,发生错误而返回该页面时,则原数据将消失
    • 如果jsp页面中表单是用<s:form>编写的,发生错误而返回该页面时,则原数据仍存在

    2、结果页面跳转类型

    在struts-default.xml定义了一些<result>中的type属性的结果页面类型,默认的type类型是dispatcher转发,type属性类型:

     1 <result-types>
     2   <!--用来处理Action链-->
     3     <result-type name="chain" class="com.opensymphony.xwork2.ActionChainResult"/>
     4     <!--用来转向页面,通常处理jsp-->
     5     <result-type name="dispatcher" class="org.apache.struts2.dispatcher.ServletDispatcherResult" default="true"/>
     6     <!--处理 FreeMarker 模板-->
     7     <result-type name="freemarker" class="org.apache.struts2.views.freemarker.FreemarkerResult"/>
     8     <!--控制特殊http行为的结果类型-->
     9     <result-type name="httpheader" class="org.apache.struts2.dispatcher.HttpHeaderResult"/>
    10     <!--重定向到一个URL-->
    11     <result-type name="redirect" class="org.apache.struts2.dispatcher.ServletRedirectResult"/>
    12     <!--重定向到一个 Action-->
    13     <result-type name="redirectAction" class="org.apache.struts2.dispatcher.ServletActionRedirectResult"/>
    14     <!--向浏览器发送 InputSream 对象,通常用来处理文件下载,还可用于返回 AJAX 数据。-->
    15     <result-type name="stream" class="org.apache.struts2.dispatcher.StreamResult"/>
    16     <!--处理 Velocity 模板-->
    17     <result-type name="velocity" class="org.apache.struts2.dispatcher.VelocityResult"/>
    18     <!--处理 XML/XLST 模板-->
    19     <result-type name="xslt" class="org.apache.struts2.views.xslt.XSLTResult"/>
    20     <!--显示源文件内容,如文件源码-->
    21     <result-type name="plainText" class="org.apache.struts2.dispatcher.PlainTextResult" />
    22 </result-types>

    所以type属性可以取的值有:chain、dispatcher、freemarker、httpheader、redirect、redirectAction、stream、velocity、xslt、plainText。

  • 相关阅读:
    [洛谷P2742]【模板】二维凸包([USACO5.1]圈奶牛Fencing the Cows)
    [洛谷P4781]【模板】拉格朗日插值
    [洛谷P4550]收集邮票
    [洛谷P4900]食堂
    [洛谷P2057][SHOI2007]善意的投票
    [CF1083C]Max Mex
    bzoj3110: [Zjoi2013]K大数查询 【树套树,标记永久化】
    bzoj 1207: [HNOI2004]打鼹鼠 (dp)
    bzoj 1037: [ZJOI2008]生日聚会Party (dp)
    bzoj 2140: 稳定婚姻 (二分图)
  • 原文地址:https://www.cnblogs.com/xiaolongSunny/p/4641526.html
Copyright © 2011-2022 走看看