3、Struts2之咬文嚼字

读文章可以咬文嚼字,读代码也可以。今天随意(随意是指读哪个类很随意,读起来实际是咬文嚼字)地阅读Struts2的几个类的代码 ,有点心得,特记录如下。

eclipse的workspace中,很自然会先读org.apache.struts2 这个包的类,因为它是最前面显示。StrutsStatics 接口没有任何方法,有几个final static 变量。这样设计,是为了让类去实现该接口,方便直接使用静态变量。其实一般做法是,写一个常量类,里面尽是一些静态常量,谁要用就直接用类名来引用即可。如果说这样每使用一个常量便要多写个类名,那在JDK5中可以通过静态import来实现省略类名的书写。这两种做法中,我比较认同后者。

public   interface  StrutsStatics {
    
/* ...... */

    
public   static   final  String PAGE_CONTEXT  =   " com.opensymphony.xwork2.dispatcher.PageContext " ;

    
public   static   final  String STRUTS_PORTLET_CONTEXT  =   " struts.portlet.context " ;

}

在读Struts2的异常类StrutsException时,发现它扩展了XWorkException,而XWorkException是属于WebWork框架的(准确地说是XWork)。仔细一看,又发现StrutsException和XWorkException都实现了Locatable接口。既然StrutsException 扩展了 XWorkException ,就自然也成为Locatable的子类啦,为什么还要去显式实现Locatable接口呢?再细看,StrutsException并没有实现Locatable的方法。这样看来,StrutsException 显式实现Locatable接口是多此一举了。也许唯一的作用是让人一看就可直接知道StrutsException是Locatable的子类。

/*
  StrutsException 
*/
public   class  StrutsException  extends  XWorkException  implements  Locatable 

/*
  XWorkException
*/
public   class  XWorkException  extends  RuntimeException  implements  Locatable 

/*
  Locatable 接口只有一个方法
*/
public   interface  Location {
    
public  Location getLocation();
}

在RequestUtils类中,我发现有个方法的判断语句的写法不错,但又不太准确。代码如下:

public   static  String getServletPath(HttpServletRequest request) {
if  ( null   !=  servletPath  &&   ! "" .equals(servletPath)) {
      
return  servletPath;
}

一般判断字符串既不为null又不为空(""),会是以下两种写法。

if  (servletPath  !=   null   &&   ! servletPath.equals( "" ))

if  (servletPath  !=   null   &&  servletPath.length() > 0 )
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值