当前位置: 首页 > news >正文

[java][struts2]03Struts2配置处理结果(result)总结

Struts2配置处理结果<result>...</result>

一、理解处理结果

 Action处理完用户请求后,将返回一个普通字符串

 整个普通字符串就是一个逻辑视图名

 Struts2 根据逻辑视图名,决定响应哪个结果

 Struts2处理结果使用<result>元素配置

  局部结果:将<result>作为<action>子元素配置

  全局结果:将<result>作为<global-results>元素的子元素配置

 配置<result>元素通常需要指定两个属性

  name  该属性指定配置逻辑视图名

  type  该属性指定结果类型

二、当多个action中都使用到了相同result,这时我们应该把result定义为全局结果。

 struts1中提供了全局forward,struts2中也提供了相似功能:

  <package ....>

   <global-results>

    <result name="message">/message.jsp</result>

   </global-results>

  </package>

 注:局部的会覆盖全局

 Struts1中应用范围内action的实例 action是单实例(执行时,先在缓存中查找实例,如果有就用,没有创建新的实例)

 Struts2中 应用范围内action的实例,每个请求都会创建一个action实例

 Servlet属于单实例多线程的应用,实例只在初始化时被加载

 多实例比单实例的优点,不会产生并发问题,但执行速度不如单实例

三、struts-default.xml 配置常用结果类型

    <package name="struts-default" abstract="true">

        <result-types>

            <result-type name="chain" class="com.opensymphony.xwork2.ActionChainResult"/>

            <result-type name="dispatcher" class="org.apache.struts2.dispatcher.ServletDispatcherResult" default="true"/>

            <result-type name="freemarker" class="org.apache.struts2.views.freemarker.FreemarkerResult"/>

            <result-type name="httpheader" class="org.apache.struts2.dispatcher.HttpHeaderResult"/>

            <result-type name="redirect" class="org.apache.struts2.dispatcher.ServletRedirectResult"/>

            <result-type name="redirectAction" class="org.apache.struts2.dispatcher.ServletActionRedirectResult"/>

            <result-type name="stream" class="org.apache.struts2.dispatcher.StreamResult"/>

            <result-type name="velocity" class="org.apache.struts2.dispatcher.VelocityResult"/>

            <result-type name="xslt" class="org.apache.struts2.views.xslt.XSLTResult"/>

            <result-type name="plainText" class="org.apache.struts2.dispatcher.PlainTextResult" />

        </result-types>

   3.1 结果类型:  dispatcher

 dispatcher 结果类型是最常用的结果类型, 也是 struts 框架默认的结果类型

 该结果类型有一个 location 参数, 它是一个默认参数

 dispatcher 结果类型将把控制权转发给应用程序里的某个资源.

 dispatcher 结果类型不能把控制权转发给一个外部资源. 若需要把控制权重定向到一个外部资源, 应该使用 redirect 结果类型

   3.2 结果类型:  redirect

 redirect 结果类型将把响应重定向到另一个资源, 而不是转发给该资源.

 redirect 结果类型接受下面这些参数:

  location: 用来给出重定向的目的地

  param: 用来表明是否把 location 参数的值视为一个 OGNL 表达式来解释. 默认值为 true

  redirect 结果类型可以把响应重定向到一个外部资源

   3.3 结果类型:  redirectAction

 redirectAction 结果类型把响应重定向到另一个 Action

 redirectAction 结果类型接受下面这些参数:

  actionName: 指定 “目的地” 动作的名字. 它是默认属性

  namespace: 用来指定 “目的地” 动作的命名空间.

      如果没有配置该参数, Struts 会把当前 Action 所在的命名空间作为 “目的地” 的命名空间

Struts2配置处理结果<result>...</result>

一、理解处理结果

 Action处理完用户请求后,将返回一个普通字符串

 整个普通字符串就是一个逻辑视图名

 Struts2 根据逻辑视图名,决定响应哪个结果

 Struts2处理结果使用<result>元素配置

  局部结果:将<result>作为<action>子元素配置

  全局结果:将<result>作为<global-results>元素的子元素配置

 配置<result>元素通常需要指定两个属性

  name  该属性指定配置逻辑视图名

  type  该属性指定结果类型

二、当多个action中都使用到了相同result,这时我们应该把result定义为全局结果。

 struts1中提供了全局forward,struts2中也提供了相似功能:

  <package ....>

   <global-results>

    <result name="message">/message.jsp</result>

   </global-results>

  </package>

 注:局部的会覆盖全局

 Struts1中应用范围内action的实例 action是单实例(执行时,先在缓存中查找实例,如果有就用,没有创建新的实例)

 Struts2中 应用范围内action的实例,每个请求都会创建一个action实例

 Servlet属于单实例多线程的应用,实例只在初始化时被加载

 多实例比单实例的优点,不会产生并发问题,但执行速度不如单实例

三、struts-default.xml 配置常用结果类型

    <package name="struts-default" abstract="true">

        <result-types>

            <result-type name="chain" class="com.opensymphony.xwork2.ActionChainResult"/>

            <result-type name="dispatcher" class="org.apache.struts2.dispatcher.ServletDispatcherResult" default="true"/>

            <result-type name="freemarker" class="org.apache.struts2.views.freemarker.FreemarkerResult"/>

            <result-type name="httpheader" class="org.apache.struts2.dispatcher.HttpHeaderResult"/>

            <result-type name="redirect" class="org.apache.struts2.dispatcher.ServletRedirectResult"/>

            <result-type name="redirectAction" class="org.apache.struts2.dispatcher.ServletActionRedirectResult"/>

            <result-type name="stream" class="org.apache.struts2.dispatcher.StreamResult"/>

            <result-type name="velocity" class="org.apache.struts2.dispatcher.VelocityResult"/>

            <result-type name="xslt" class="org.apache.struts2.views.xslt.XSLTResult"/>

            <result-type name="plainText" class="org.apache.struts2.dispatcher.PlainTextResult" />

        </result-types>

   3.1 结果类型:  dispatcher

 dispatcher 结果类型是最常用的结果类型, 也是 struts 框架默认的结果类型

 该结果类型有一个 location 参数, 它是一个默认参数

 dispatcher 结果类型将把控制权转发给应用程序里的某个资源.

 dispatcher 结果类型不能把控制权转发给一个外部资源. 若需要把控制权重定向到一个外部资源, 应该使用 redirect 结果类型

   3.2 结果类型:  redirect

 redirect 结果类型将把响应重定向到另一个资源, 而不是转发给该资源.

 redirect 结果类型接受下面这些参数:

  location: 用来给出重定向的目的地

  param: 用来表明是否把 location 参数的值视为一个 OGNL 表达式来解释. 默认值为 true

  redirect 结果类型可以把响应重定向到一个外部资源

   3.3 结果类型:  redirectAction

 redirectAction 结果类型把响应重定向到另一个 Action

 redirectAction 结果类型接受下面这些参数:

  actionName: 指定 “目的地” 动作的名字. 它是默认属性

  namespace: 用来指定 “目的地” 动作的命名空间.

      如果没有配置该参数, Struts 会把当前 Action 所在的命名空间作为 “目的地” 的命名空间


http://www.mrgr.cn/news/24751.html

相关文章:

  • 2024年华为杯数学建模研赛 最全赛中助攻|选题建议+思路+代码+成品论文预定
  • 【强化学习环境搭建】mujoco,mujoco_py,d4rl等强化学习相关资源安装及使用的参考资料链接 持续更新ing
  • 建筑电焊工模拟试题(单选题附答案)
  • 0911(绘制事件,qt中的网络通信)
  • Robust Image Denoising through Adversarial Frequency Mixup
  • 比较stl库的ostringstream与Qt的QString::arg(),QString::number()
  • 【数据分析】标准误差与标准差的区别
  • 本地内存和分布式缓存(面试)
  • train_loader = DataLoader(train_dataset, batch_size=32, shuffle=True)
  • 2024.9.11
  • 高并发内存池项目(3)——项目框架介绍与实现线程池
  • Vue 3 Composition API进阶指南
  • C++ lambda闭包消除类成员变量
  • 20240912 每日AI必读资讯
  • 网络安全 DVWA通关指南 DVWA Reflected Cross Site Scripting (反射型 XSS)
  • Spring Cloud Config 配置中心
  • ARM base instruction -- bl
  • BCE损失解析
  • 数学建模笔记—— 回归分析
  • 剪画:分享一款自媒体新手小白都在用的剪辑工具,收藏!