介绍一下struts2内置帮我们封装好的处理结果方式也就是底层源码分析

这是我们的jar包里面找的位置目录

打开往下拉看到result-type节点

name那一列就是我们的type类型取值

上一篇博客在分析的时候发现就算不写也会自动转发原因在这里,default=true  选择了默认方式

接着我们如果想看看底层是如何工作的就选择class属性复制双引号的内容

接着按住ctrl+shift+T就能出现一个框

OPen Type

进去之后发现是这个,点击Attach Source----》选择第二个 外部文件----》完成

看过学过web的同学应该知道这些是html标签,在这里这些是注释文档,接下来我们换一张方式看也就是翻译

点击windows----show view-----找到other----输入java关键字---看下面的控制台完成OK

接下来点击其中一个html标签


下面进入正题

第一种dispatcher (默认的)---转发

struts.xml主配置设置

观察状态栏

看底层实现方式 不会的可以看看上面的看源码的步骤

也就是封装了一下,中间有个判断更加安全,符合面向对象方式,实现代码重用。跟我们servlet写法是一样的 request.getRequstDispatcher("").forward(request,response);


第二种redirect---重定向

运行之前

运行之后

底层分析

点击选中的sendRedirect方法进入方法

sendredirect是一个方法


第三种chain---链方式

看源码去学习用法及需要配置的参数

参数的用法

完整配置的xml文件

控制台输出

第三种redirectAction---重定向到某一个action (常用)

地址栏

回车之后控制台显示

以下是struts.xml主配置的所有完整代码

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd"> <struts>
<!-- 是否开启开发模式
struts.enable.DynamicMethodInvocation = false
-->
<constant name="struts.enable.DynamicMethodInvocation" value="true"></constant> <package name="result" namespace="/" extends="struts-default">
<!-- 转发 -->
<action name="Demo1Action" class="com.legend.action.Demo1Action" method="execute">
<result name="success" type="dispatcher">/hello.jsp</result>
</action> <!-- 重定向 -->
<action name="Demo2Action" class="com.legend.action.Demo2Action" method="execute">
<result name="success" type="redirect">/hello.jsp</result>
</action> <!-- 转发到action -->
<action name="Demo3Action" class="com.legend.action.Demo3Action" method="execute">
<result type="chain">
<!-- action的名字 -->
<param name="actionName">Demo1Action</param>
<!-- action所在的命名空间 -->
<param name="namespace">/</param>
</result>
</action> <!-- 转发到action -->
<action name="Demo4Action" class="com.legend.action.Demo4Action" method="execute">
<result type="redirectAction">
<!-- action的名字 -->
<param name="actionName">Demo1Action</param>
<!-- action所在的命名空间 -->
<param name="namespace">/</param>
</result>
</action>
</package>
</struts>

最新文章

  1. css样式(二)(伪类 | 伪元素 | 导航 | 图像拼合 | 属性选择器 )
  2. iptable怎么用?
  3. 数据结构学习笔记05图(最小生成树 Prim Kruskal)
  4. Android设计模式源码解析之桥接模式
  5. .NET 元数据
  6. C#进程管理程序实现
  7. ansible-playbook用法
  8. 使用系统用户登录Oracle
  9. JS:Math 对象方法
  10. git 入门教程之实战 git
  11. Tembin
  12. 第十六节,使用函数封装库tf.contrib.layers
  13. 异象石(就是sdio宝藏那题)
  14. golang 获取get参数
  15. 浅谈mysql中各种表空间(tablespaces)的概念
  16. CentOs6.7 python2.6升级到2.7.11
  17. CRM某些表加入审计
  18. windows中eclipse调试hadoop
  19. struts2 开发模式
  20. Java 异常处理之 论 finally块何时候不走

热门文章

  1. Linux-Xshell5
  2. CDH与原生态hadoop之间的区别(转)
  3. 为数据赋能:腾讯TDSQL分布式金融级数据库前沿技术
  4. 资料收集:学习 Linux/*BSD/Unix 的 30 个最佳在线文档
  5. avalon实现日期联动
  6. c#做的查找文件夹内内容的小工具
  7. tornado基本使用【服务】
  8. HDU 5011 NIM博弈
  9. 【设计模式】template method(模板方法)-- 类行为型模式5.10
  10. 深入理解JavaScript函数