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

本文通过自定义监听器和触发器模拟了Tapestry框架的行为,实现了一个简单的页面生命周期管理模型。该模型包括Before和After两个监听接口及一个BasePage基类,通过不同事件触发页面的不同行为。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

====== 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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值