该问题的最初来源,是源于Struts中的 return SUCCESS; 和 return "success";

在Struts的配置文件struts.xml我们可以找到"success"的配置

该"success"指向的是一个action或者一个jsp。

这里笔者就很好奇,SUCCESS指向的是一个什么方法,它的返回值是什么。毕竟在配置文件中没有找到配置SUCCESS的语句。

作为一个新手,笔者看到这种大写的,在eclipse中显示粗体斜体的,自然的就想到了,这个变量是一个静态常量,毕竟只有静态常亮才能在其他类中不定义就直接使用(静态常亮在程式开始的时候就被创建在内存中,可以直接被使用,静态方法也是如此),一般来说,定义成静态常量的会加一个final的修饰符,不允许被修改它的值。

那只能通过SUCCESS本身去找答案了。进入SUCEESS的.class文件中,笔者终于找到了答案。

原来在Struts中,它把一些常用的SUCCESS, NONE, ERROR, INPOUT, LOGIN 都定义了一遍。SUCCESS其实就是"success"。看到这里,终于明白了SUCCESS是什么了。

在此,笔者就想到了一个问题,使用其他类的静态常量是需要"类名.静态常量"这样的格式来获得的,那为什么在Struts 的Action中能直接使用SUCCESS呢?

这个问题貌似只有一个答案,这个Action继承了定义SUCCESS的类。

那就一步一步往前找。

自己定义的Action继承了ActionSupport

这个ActionSupport友继承了定义SUCCESS的接口。

这里笔者找到了满意的答案。

在此,笔者又看到了abstract这个烦人的东西,接口,继承,抽象类。  

由Struts return SUCCESS引发的基础问题的更多相关文章

  1. 学习Struts--Chap03:struts.xml常用配置(基础)

    1.package属性 name:包名 用来唯一的指定一个package.package可以扩展,当一个package扩展自 另一个package时该package会在本身配置的基础上加入扩展的pac ...

  2. 由struts错误使用引发的漏洞,使用参数作为返回的文件路径或文件名,作为返回result 值

    该错误可以导致他人任意访问该路径下的任何文件. struts 文件 <?xml version="1.0" encoding="UTF-8" ?> ...

  3. 由 '' in 'abc' return True 引发的思考----Python 成员测试操作

    最近遇到判断字典中是否存在空字符串‘’,这个很好判断,直接用:‘’ in ['a','b','c'],就可以直接判断出来:但是当我对字符串使用 “in” 方法进行判断的时候,发现:‘’ in ‘abc ...

  4. Struts2(一)— 入门

    一.概述 1.什么是Struts2 Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立 ...

  5. eclipse环境下基于tomcat-7.0.82构建struts2项目

    开山第一篇,毕业4个月目前接触最多的框架还是s2sh框架.... 具备完整的开发环境下,在eclipse下启动tomcat出现如下所示画面表示环境构建成功. 第一步:创建web项目,截图如下 此页面只 ...

  6. ssh框架-Struts2(一)

    Struts2 概述 用我们自己的话来说: struts是web层框架, 相当于Servlet 作用: 1. 获得请求参数 2. 调用业务 3. 分发转向 常用的WEB层框架 Struts2入门 1. ...

  7. 学习Struts2.3

    </pre>1.struts2.3核心jar包(若首次接触,可临时略过不看)大家能够到http://struts.apache.org/download.cgi#struts2014下载s ...

  8. javaWeb项目(SSH框架+AJAX+百度地图API+Oracle数据库+MyEclipse+Tomcat)之一 基础Struts框架搭建篇

    即将开始着手写这个项目,所以希望通过这篇博客来记录自己学习的过程 今天开学第一天,就上了软件工程实践课,自己也开始着手做这个大作业了.首先我的项目名称叫做智能班车管理系统. 项目的概况: 该软件产品是 ...

  9. Struts2基础-4-2 -struts拦截器实现权限控制案例+ 模型驱动处理请求参数 + Action方法动态调用

    1.新建项目,添加jar包到WEB-INF目录下的lib文件夹,并添加到builde path里面 整体目录结构如下 2.新建web.xml,添加struts2核心过滤器,和默认首页 <?xml ...

随机推荐

  1. 软件测试之loadrunner学习笔记-02集合点

    loadrunner学习笔记-02集合点 集合点函数可以帮助我们生成有效可控的并发操作.虽然在Controller中多用户负载的Vuser是一起开始运行脚本的,但是由于计算机的串行处理机制,脚本的运行 ...

  2. Xcode8支持iphone4s真机调试

    由于Apple公司升级不ios到10.0以上版本,因为硬件.性能等因素,不再支持iphone4,iphone4s,ipad1, ipad2,ipad3等老款设备.所以这些老款设备无法升级到ios10. ...

  3. 正则表达式test验证的“bug”

    在使用正则表达式对某些字符串进行验证时,我们常常会使用到test方法,而该方法也隐藏着一个陷阱,今天就让我们来看一下这个问题. var str = 'hello jack, hello rose'; ...

  4. html5的FormData对象和input的file属性以及window.URL.createObjectURL( ) 方法(转载)

    /** FormData ==>表单数据 能自动把表单数据拼接打包 当ajax发送数据时,发送打包的数据; 还可以使用FormData对象的append(key,value)添加数据 FormD ...

  5. RequireJS 加载 easyui

    requireJS 可以让js加载起来比较优雅,像java里import一样.有了这个,我们可以创建自己的 js控件库,在需要时,页面中只引入 requireJS,然后通过代码方式引入需要用到的控件, ...

  6. leetcode 206

    206. Reverse Linked List Reverse a singly linked list. 翻转一个单链表. 代码如下: /** * Definition for singly-li ...

  7. Struts2 XML配置详解

    struts官网下载地址:http://struts.apache.org/   1.    深入Struts2的配置文件 本部分主要介绍struts.xml的常用配置. 1.1.    包配置: S ...

  8. Android开发--页面切换

    1.创建android项目.项目文档如下 2.activity_main布局,Androidv4包里自带的,既然是自带的那么直接拿来用就可以了,当然前提是你得工程里有v4包 <LinearLay ...

  9. arguments转换为数组格式

    var agArr = []; for(var i = 0; i < arguments.length; i++) { agArr.push(arguments[i]) }

  10. NK3C系统中ID的汉语名称

    系统中的ID有需要显示给使用者看的,统一用"编号",不要用ID或者编码 例如: SampleId 样本编号 正确 样本编码 错误 样本ID 错误 如果见到系统中有用到的,修正即可. ...