终于看懂了tiles的大体。初看时确实会感觉十分的麻烦。明白了各处的配置后,豁然开朗,真是结构清晰,以下是一段经典的代码:
<!-- ========== Action Mapping Definitions ============================== -->
<action-mappings> 
<!-- Action mapping for profile form -->
 <action path="/login"  
  type="com.ncu.test.LoginAction"     
  name="loginForm"   
  scope="request"    
  input="tile.userLogin"
  validate="true">    
  <forward name="success" path="tile.userMain"/>  
 </action>
</action-mappings>
 Tiles配置文件:tiles-defs.xml
<!DOCTYPE tiles-definitions PUBLIC
"-//Apache Software Foundation//DTD Tiles Configuration//EN"       "[url]http://jakarta.apache.org/struts/dtds/tiles-config.dtd[/url]">
<tiles-definitions> 
<!-- =======================================================  -->
<!-- Master definitions                                       -->
<!-- =======================================================  -->
<!-- Page layout used as root for all pages. -->
<definition name="rootLayout" path="/tiles-layouts/rootLayout.jsp">
 <put name="titleString" value="CHANGE-ME"/>  
 <put name="topMenu" value="/tiles-components/topMenu.jsp"/>
 <put name="leftMenu" value="/tiles-components/panel1.jsp"/> 
 <put name="body" value="CHANGE-ME"/>  
 <put name="footer" value="/tiles-components/footer.jsp"/>
</definition>
<!-- =======================================================  -->
<!-- Page definitions      --> 
<!-- =======================================================  -->
<!-- User Login page -->
<definition name="tile.userLogin" extends="rootLayout">
 <put name="titleString" value="User Login"/> 
 <put name="body" value="/src/userLogin.jsp"/>
</definition> 
<!-- User Main page -->
<definition name="tile.userMain" extends="rootLayout">
 <put name="titleString" value="User Main"/> 
 <put name="body" value="/src/userMain.jsp"/>
</definition>
</tiles-definitions>
这样,我们就可以少写很多页,或重复代码,把模板拿来,只做不同的那一小部份。其实web应用中,项目间可重用的部分真是比较多,都抠出来,用的时候put进去,一定比较舒服。
还是纸上功夫,还没有亲手做一个完整地demo出来,但这真的是一个比较舒服的功能:)