on the road

working hard

 
 Blog首页我的首页 我的文章我的像册我的圈子后台管理给我留言聚合
当前位置:首页-on the road->文章内容
一种新的BaseAction,看看行不行
评论数(9) 阅读次数(248)发布时间:2007-06-10 16:10
又看了下java5的标签,越来越感觉不错,
所以就实现了一个原来一直想要的Action:AbstractCmdAAction.
名字和原来的Action只多了一个A,表明里面都是用标签做的。
首先来说说原来的doXXX,其实和JUnit3.8一样,为什么JUnit与时俱进的推出了Junit4,
这个原因说的是doXXX会造成语义的混乱。
所以,我也给改了,
下面说说加的几个标签:
@init ——初始化的标签,比如:
@Init
 public Page doInit(WebForm arg0, Module arg1) {
  // TODO Auto-generated method stub
  return null;
 }
被标识的方法作为默认的处理请求方法。
 
@Before——Action前操作,可以标识多个方法。同时可以加入一个参数,@Before(1) @Before(2)来标识方法执行的顺序。
如果被标识的方法返回了一个Page对象,则不执行之后的@Before和Action了。
 
@After——Action后操作,可以标识多个方法,也能加入一个顺序。方法均执行。
 
@Do("name")——方法标识。其中name为easyJWebCommand标识的名字,
比如:
@Do("add")
 public Page add(WebForm form, Module module) {
  return new Page("edit", "/blog/albumDirEdit.html");
 }
 
@FormPO——需要用请求中的值来初始化的对象,该标签标识Field,可以不要set方法。
该标识的对象直接使用form.toPo(xxx)。
@FormPO
 private AlbumDirCommand cmd;
 
@Do("save")
 public Page save(WebForm form, Module module) {
  errors = cmd.vaild();
  if (errors != null && errors.size() > 0) {
   form.addResult("errors", errors);
   return new Page("edit", "/blog/albumDirEdit.html");
  }
  AlbumDir albumDir = new AlbumDir();
  com.easyjf.beans.BeanUtils.copyProperties(cmd, albumDir);
  this.service.addAlbumDir(albumDir);
  return this.list(form, module);
 }
 
要使用这些只需要继承AbstractCmdAAction就可以用了,
这些标签都在该Action中处理的,没有涉及到框架本身。
还可以加入其他的比如错误处理等等。
 
大家帮忙看看这样设计有没有问题。
 
 
 【评论】 【加入收藏】 【推荐给朋友】 【字体:  】 【关闭】   

 
Aboutus | 联系我们 | 程序开发 | 网站地图 | 留言板
Copyright (C) 2005 EasyJF.com, All Rights Reserved
版权所有 简易java框架网
渝ICP备06004507 如有意见请与我们联系 Powered by EasyJFramework