由Struts return SUCCESS引发的基础问题

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

由Struts return SUCCESS引发的基础问题由Struts return SUCCESS引发的基础问题

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

由Struts return SUCCESS引发的基础问题

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

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

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

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

由Struts return SUCCESS引发的基础问题

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

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

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

那就一步一步往前找。

由Struts return SUCCESS引发的基础问题

自己定义的Action继承了ActionSupport

由Struts return SUCCESS引发的基础问题

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

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

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

上一篇:poj 3614


下一篇:实时获取键盘高度 CGSize keyboardSize = [[[notification userInfo] objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue].size;