码迷,mamicode.com
首页 > 其他好文 > 详细

2018.11.20 Struts2中对结果处理方式分析&struts2内置的方式底层源码剖析

时间:2018-11-20 15:03:58      阅读:182      评论:0      收藏:0      [点我收藏+]

标签:show view   default   完成   一个   code   判断   设置   参数   als   

介绍一下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>   

2018.11.20 Struts2中对结果处理方式分析&struts2内置的方式底层源码剖析

标签:show view   default   完成   一个   code   判断   设置   参数   als   

原文地址:https://www.cnblogs.com/qichunlin/p/9987955.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!