Struts使用Tiles辅助开发 
  
对于在页面的布局管理以及可重用方面,Tiles做得很优秀,使我们在开发过程中思路非常流畅,特别是在用struts开发项目过程中,如果使用tiels来辅助开发,往往能带到事半功倍的效果。 
  
如果要看Tiles的详细文档,请访问http://www.lifl.fr/~dumoulin/tiles/ 
  
在此我想从使用方式上说一下自己的经验: 
  
往往我们的一个项目中,大部分的页面的布局都是一样的,这其中如果我们把一样风格的页面归为一类的话,这样的分类就不会很多了。(不同的项目这样的分类多少为有区别,要看页面风格规划的是否高效) 
假设我们提出一类页面(如产品管理)的风格,布局如下: 
  
  
  
那么我们可以在tiles-defs.xml中定义这样一个总的类型,如下: 
  
tiles-defs.xml  放在/yourwebapp/WEB-INF/下 
  
<?xml version="1.0" encoding="ISO-8859-1" ?> 
  
 <!DOCTYPE tiles-definitions PUBLIC 
       "-//Apache Software Foundation//DTD Tiles Configuration 1.1//EN" 
"http://jakarta.apache.org/struts/dtds/tiles-config_1_1.dtd"> 
<tiles-definitions> 
      <!—布局类型一 --> 
         <definition name="mainLayout" path="/homepage.jsp"> 
         <put name="top"  value="/header.jsp" /> 
         <put name="menu"    value="/menu.jsp"/> 
         <put name="main" value="/main.jsp" /> 
         <put name="footer" value="/footer.jsp" />    
  </definition> 
       …… 
       <!—布局类型二 --> 
  <definition> 
              …… 
  </definition> 
       …… 
  
</tiles-definitions> 
  
以上定义了一种布局类型,假设命名为A布局,下面要列举两个属于该类型风格的页面的布局方法 
添加产品页面,最终我们要关心的时addProducts.jsp这个页面,但是我们如何使用A布局的布局风格呢? 
如下: 
……接上tiles-defs.xml…… 
  
      <!—布局类型A布局一 --> 
         <definition name="mainLayout" path="/homepage.jsp"> 
         <put name="top"  value="/header.jsp" /> 
         <put name="menu"    value="/menu.jsp"/> 
         <put name="main" value="/main.jsp" /> 
         <put name="footer" value="/footer.jsp" />    
</definition> 
  
<!—布局类型A布局“子类1:添加商品”一 --> 
<definition name=”mainLayout_products_add” extends=” mainLayout”> 
     <put name=”main” value=”/addProducts.jsp”/> 
     <!—相当于把布局A中main的内容换成我们需要的,其他保留 --> 
</definition> 
  
<!—布局类型A布局“子类2:查询商品”一 --> 
<definition name=”mainLayout_products_search” extends=” mainLayout”> 
     <put name=”main” value=”/searchProducts.jsp”/> 
<!—相当于把布局A中main的内容换成我们需要的,其他保留 --> 
</definition> 
…… 
…… 
  
以上只是以一种布局类型来说明,其他的布局类型(如:布局B,布局C。。。。。)都用相通的方法扩展,没有什么难的地方。 
  
下面简要说一些tiles在struts-config.xml中的配置,在struts1.1种tiles是利用struts的扩展机制来完成装载的,代码很简单如下: 
struts-config.xml 
  …… 
  <plug-in className="org.apache.struts.tiles.TilesPlugin" > 
    <set-property property="definitions-config"  
                        value="/WEB-INF/tiles-defs.xml" /> 
  </plug-in> 
  
如果你些多个tiles配置文件,那么用“,”号隔开。 
  
下面在举一个使用tiles以后action mapping 的写法 
  
如我们要进行添加商品的请求,在添加页面里要先进行商品类型的装载: 
  
addProductAction.do——〉ProductAction——〉addProducts.jsp 
  
ProductAction完成商品类型的集合返回client端 
  
Struts-config.xml 
  
………… 
       <action path=”/ addProductAction” 
                     type=”com.***. ProductAction”> 
        <!—成功以后返回布局A子类1-- > 
       <forward name=”” path=” mainLayout_products_add”> 
</action> 
………… 
  
好了,以上对一个操作的流程采用tiles以后的写法进行了简要的说明,具体Tiles的文档请参看上面给出的连接。 
Struts发布包里也有tilse的文档和例子。  
 
  |