分类:
2008-09-09 17:09:54
没有在网上公开发部,与大家一同学习,分享,交流经验,旧版本的代码可以参考我以前的文章,设计思路上差不多。新版本中加入了preHandler,postHandler,exceptionHandler等方法,可自定义实现,这个来自于spring mvc,其实以前有,只不过不是叫这些名字,改了之后显得更专业些
加入了 自动事务处理功能
调用start()即可,其后的数据库操作加入事务容器,自动提交,回滚
当然 "事务容器"只是个概念,用把template和proxy即可轻松实现的,当然也不支持分布式事务拉,不过应付一般项目足以与webwork类似,action来一个new一个,没有线程问题action里可放心大胆使用成员变量
配置文件在见jf.xml
关于跳转路径
有!前缀的使用redirect,没有的则forward
ajf (agile java framework)
// power magic action ,from struts,webwork and spring mvc
//组合使用 command,template,proxy,decorator,filter,chain等设计模式
//实现了类似aop功能,轻松实现日志,权限,连接,事务等问题
//拥有一个超强魔力的action基类
//还可以覆盖实现preHandler,postHandler,exceptionHandler
//做各种各样的前置后置异常处理等动作
//在这里你可以看到struts,webwork,spring mvc等框架的影子
//BaseAction extends Action
//XXXAction extends BaseAction
//一个action多个操作
//根据method参数 ,利用反射调用相应的execute方法,如execute_query
//可采用传统mvc框架配置也可零配置,在jsp页面里直接调用action
一个用户增删改查的例子,所有操作都写在一个action里
下面是BaseAction和UserAction的代码及注释
//------------------
//---------------------------
BaseAction.java
package com.zjuee.action;
import java.util.*;
import com.zjuee.mvc.*;
import com.zjuee.*;
public class BaseAction extends Action{
String action = null;
String actionClassName = null;
long start = 0;
long end = 0;
Map ajf_system_request_map = null;
long diff=0;
//看到这些方法的名字就晓得是怎么回事了,
//分别是前置,后置,异常处理器
//与webwork类似,action来一个new一个,没有线程问题
//放心大胆使用成员变量
public String preHandler()throws Exception{
/*
LogUtil.info("tiger",StringUtil.getNowTime());
action = AjfUtil.getAction(request);
actionClassName = this.getClass().getName();
LogUtil.info("action="+action+",method="+method);
LogUtil.info(actionClassName+",pre handler,"+StringUtil.getNowTime());
*/
ajf_system_request_map = JspUtil.getRequestModel(request);
start=StringUtil.getNowMs();
return null;
}
public String postHandler()throws Exception{
/*
LogUtil.info(actionClassName+",post handler,"+StringUtil.getNowTime());
LogUtil.debug(actionClassName+",post handler,"+StringUtil.getNowTime());
LogUtil.warn(actionClassName+",post handler,"+StringUtil.getNowTime());
*/
end=StringUtil.getNowMs();
diff=end-start;
LogUtil.info(diff+","+JspUtil.getUrl(request)+","+ajf_system_request_map);
return null;
}
public void exceptionHandler(Exception e)throws Exception{
LogUtil.error(actionClassName+",exception handler,"+e+","+StringUtil.getNowTime());
return;
}
}
//------------------------
//----------------------------UserAction.java
package com.zjuee.action;
import com.zjuee.mvc.*;
import com.zjuee.*;
import java.util.*;
// power magic action ,from struts,webwork and spring mvc
[1]