Tapestry 3.0 Web构架 非常简易的模拟

来源:互联网 发布:教师网络培训研修计划 编辑:程序博客网 时间:2024/06/08 11:50

====== Listener   部分 =======

        public interface AfterListener {
 
                        public void afterDrawing();

        }

        public interface BeforeListener {
 
                      public void beforeDrawing();
         }

 

   ====== Page  部分 =======

     public interface IPage {        

                       public void afterDrawing();
                       public void beforeDrawing();
                       public void triger();

     }

   public class BasePage implements IPage{

                     public void afterDrawing() {      }

                    public void beforeDrawing() {     }

                   public void triger() {   }

     }

   ====== 构架的实现 (实现2个监听和1个触发) 部分 =======

            public class TestListener {
 
                         

                        public void drawing(IPage p, String event){
  
                                   if(event.equals("1")) {
                                                   
p.beforeDrawing();
                                    }
  
  
                                   if(event.equals("3")){
                                                     p.triger();
   
                                    }else{
       
                                         System.out.println("相当于实现tapestry的 rnderPage()")
                                     }
  
                                   if( event.equals("2") ){
                                                    p.afterDrawing();
                                    }
                           } 
                   }

 ======  模拟tapestry 页面的.java 文件    部分 =======

 public class LoginPage extends BasePage implements BeforeListener{
 
              public void beforeDrawing() {
  
                   System.out.println("实现了相当于tapestry的 befoeRenderPage  Listener ");
             }

 
             public void triger(){
  
                  System.out.println("实现了相当于tapestry的DirectService中触发的triger");
             }
   }

====== Application 运行  部分 =======

public class TestMain {

   public static void main(String[] args) {
  
     try{
              System.out.println("1 equlas befoer"+"||"+"2 equlas after"+"||"+"3 equlas tigger");
             
System.out.print("Please input your choice:");
   
              InputStreamReader isr = new InputStreamReader(System.in);
              BufferedReader br = new BufferedReader(isr);   
             String event  = br.readLine();
  
             IPage p = new LoginPage();
             TestListener t = new TestListener();
    
             t.drawing(p, event);     
   
         }catch (Exception e){   
      }   
   }
}

说明部分:

        1   构架的实现部分,可以用JAVA 反射机制构造出;Target类需要自己写;

        2   Application 运行部分,可运用XML和Servlet重写,可能的话运用生产模式

            创 造实例;

         3  对html页面的变量setter/getter实现 ,运用OGNL和XML

原创粉丝点击