科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道超级简单的mvc框架ajf1.2发布 2

超级简单的mvc框架ajf1.2发布 2

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

//组合使用?command,template,proxy,decorator,filter,chain等设计模式 //实现了类似aop功能,轻松实现日志,权限,连接,事务等问题 //拥有一个超强魔力的action基类 //还可以覆盖实现preHan

作者:中国IT实验室 来源:中国IT实验室 2007年9月10日

关键字: 编程 java

  • 评论
  • 分享微博
  • 分享邮件


//组合使用 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


public class UserAction extends BaseAction{

      
      public String execute()throws Exception{
          
        
            return execute_query();
           
        
   }

      public String execute_query()throws Exception{

              createTable();


             String sql = "select * from t_user"; 
             
             conn=DBUtil.getConn();
             
             //just get connection
             //close,commit,rollback,
             //exception handle in parent class 
             //all is auto 
             
             //连接的释放,事务处理,异常处理,日志,权限 在父类进行
             
             //手动开启事务,调用start()方法即可,
             //其后的所有数据库操作将纳入事务管理容器,
             //自动提交,回滚,关闭Connection
             
             //当然不支持分布式事务,不过应付一般的项目足以
             
             
             //简单的crud操作,在action里直接调用jdbc封装类
             //如果业务复杂,则可用service包裹,注入connection即可
             //关于分层设计,该分的时候分,该合的时候合
   
             Map map = PagedUtil.queryString(conn,sql,1,1,request);
             //分页查询,两个标志位分别表示主键列数,是否显示chechbox,供选择记录进行查看,编辑,删除操作
             //返回数据表格和工具条,key值分别为data 和 page_bar
             //如果是大数据量查询,可设置db_query_max_row 参数
             add(map);
             
             return "q";
             //如果在jsp页面里直接调用则返回null即可,
             //Action action = new UserAction();
             //action.run(request,response,"query");
             
             //run(request,respnse,"method_name");
             
             //  user$query.do
             
             //  user$method.do
             
             //   根据method参数 ,利用反射调用相应的execute方法,如execute_query
             //execute 命名方法
             
   }

    public String execute_input()throws Exception{

           return "input";      
        
   }

   public String execute_insert()throws Exception{

           String table = "t_user";    
           String cols = "id,name,hh,ww,birth_day";
           int autoPK = 1;
           conn=DBUtil.getConn();
           DBUtil.insert(conn,table,cols,autoPK,model); 
           return "!query";
        
   }

   public String execute_edit()throws Exception{

           Map user = null;
           String objectid = (String)model.get("objectid"); 
           
           String sql = "select * from t_user where id='"+objectid+"'";
           conn = DBUtil.getConn();
           user = DBUtil.queryOne(conn,sql,null);
           //sql = "select * from t_user where id=?"
           //user = DBUtil.queryOne(conn,sql,new Object[]{objectid});
           if(user==null){
               return "no_object";
           }
           model.put("user",user);
           return "edit";
   }

上一页  [1] [2] [3] 下一页  

查看本文来源

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章