当前位置: 首页 > 工具软件 > Tapestry > 使用案例 >

tapestry 技巧

漆雕誉
2023-12-01

  1 根据参数 跳转

 //IResourceLocation rootLocation = Tapestry.getApplicationRootLocation(cycle).getRelativeLocation("/WEB-INF/"); 
        IResourceLocation rootLocation = Tapestry.getApplicationRootLocation(cycle).getRelativeLocation("/"); 
        //_applicationIsExplodedWAR = rootLocation.getResourceURL().toString().startsWith("file:"); 
        //if (_applicationIsExplodedWAR) { 
        _realRootFolder = cycle.getRequestContext().getServlet().getServletContext().getRealPath("/"); 
        _locator = new RecursiveFileLocator(rootLocation,_realRootFolder); 
        _specificationSource = cycle.getEngine().getSpecificationSource(); 
        //} 
        _initialized = true; 

IResourceLocation location = _locator.resolveLocation(name+".page"); 
        if (location != null) { 
            return _specificationSource.getPageSpecification(location); 
        }  

2

要牢记,在页面对象中存在实例变量通常是危险的。只要看到它们,多半应该用一个initialize()方法将他们清空或清零。另外一个选择是,你可以让Tapestry为你做所有的那些工作

原因:一个用户将看到另一个用户的结果。怎么发生的呢?因为页面对象用过后,Tapestry不会把它丢掉,而是放入一个池中以便重复利用。随后,当再次需要使用Result页面对象时,它将检查池中有没有。如果有,就把它从池中取出并使用。仅当池中没有这样的页面对象时它才将创建一个新的页面对象。

 类似资料: