来源:http://caterpillar.onlyfun.net/Gossip/Struts/XmlConfig.htm

在Tiles中,您可以使用XML或是JSP來管理版面配置的相關資源,這邊先介紹使用XML定義檔的方式,如之前主題所定義的,定義檔是tiles-defs.xml,在當中如下撰寫:

  • tiles-defs.xml
<?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=".myLayout" path="/tiles/myLayout.jsp">         <put name="title"  value="Sample Page Title" />         <put name="header" value="/tiles/header.jsp" />         <put name="menu"   value="/tiles/menu.jsp" />         <put name="footer" value="/tiles/footer.jsp" />         <put name="body"   value="/tiles/body.jsp" />     </definition> 

</tiles-definitions>

在<definition>標籤中,我們指定了版面配置的JSP頁面,也就是path屬性所指定的 myLayout.jsp,name屬性表明這個版面配置的名稱,而在接下來的<put>標籤中,我們指定了內容頁面的名稱與JSP頁面實際 的位置。

Tiles的定義檔可以支援國際化,您可以複製以上的內容,撰寫在tiles-defs_zh.xml中,並將encoding改為Big5,就可以在定義檔中使用中文,例如:

  • tiles-defs_zh.xml
<?xml version="1.0" encoding="Big5" ?><!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=".myLayout" path="/tiles/myLayout.jsp">         <put name="title"  value="Tiles範例" />         <put name="header" value="/tiles/header.jsp" />         <put name="menu"   value="/tiles/menu.jsp" />         <put name="footer" value="/tiles/footer.jsp" />         <put name="body"   value="/tiles/body.jsp" />     </definition> </tiles-definitions>

其中myLayout.jsp的內容如下:

  • myLayout.jsp
<%@taglib prefix="tiles" uri="/tags/struts-tiles"%> <html>  <head> <title><tiles:getAsString name="title"/></title> </head>  <body>

 <table border="0" width="100%" cellspacing="5">  <tr>     <td colspan="2">        <tiles:insert attribute="header"/>    </td>  <tr>  <tr>     <td width="140" valign="top">        <tiles:insert attribute="menu"/>     </td>     <td valign="top" align="left">        <tiles:insert attribute="body"/>    </td>  </tr>  <tr>     <td colspan="2">        <tiles:insert attribute="footer"/>    </td>  </tr>  </table>

 </body> </html>

這個版面配置網頁中主要使用表格來切割版面,Tiles標籤可以從attribute屬性得知對應於XML定義檔的真正JSP頁面,例如header將被 實際取代為header.jsp的內容,您可以自行完成其它的JSP頁面內容。

接下可以開始使用定義好的版面配置,例如在welcome.jsp中如下撰寫:

  • welcome.jsp
<%@page contentType="text/html; charset=big5"%> <%@taglib prefix="tiles" uri="/tags/struts-tiles"%> <tiles:insert definition=".myLayout" flush="true"/> 

在<tiles:insert>標籤中指定我們將使用.myLayout的版面配置定義,如果您連上welcome.jsp,則實際上您 會看到以下的內容:

<html>

<head><title>Tiles範例</title></head>

<body>



<table border="0" width="100%" cellspacing="5">

<tr>

<td colspan="2">

<center><h1>Tiles測試範例<h1>

</td>

<tr>

<tr>

<td width="140" valign="top">

選單一<br>

選單二<br>

選單三<br>

</td>

<td valign="top" align="left">

Tiles提供一個類似於視窗程式版面管理的機制,透過定義檔,您可

以定義版面配置,以及當中所要置入的內容網頁,內容與版面配置的

標籤可以分離,您可以隨時抽換每一個內容網頁,也可以重用每一個

版面配置。

</td>

</tr>

<tr>

<td colspan="2">

<center>版權所有(c)http://www.caterpillar.onlyfun.net/

</td>

</tr>

</table>



</body>
</html>


如果您將來要改變版面配置的方式,您可以直接修改tiles-defs.xml中path所指向的Layout頁面,就如同您在視窗程式中改變版面管理員 一樣,如果您要修改指向的內容網頁,也只要更改tiles-defs.xml中相對應的設定,所有的更改集中於Tiles設定檔中加以管理,達到將版面配 置與內容分離的目的。

您可以擴充某個定義,重新定義當中所管理的頁面資源,一個例子如下:

  • tiles-defs_zh.xml
<?xml version="1.0" encoding="big5" ?><!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=".myLayout" path="/tiles/myLayout.jsp">         <put name="title"  value="Tiles範例" />         <put name="header" value="/tiles/header.jsp" />         <put name="menu"   value="/tiles/menu.jsp" />         <put name="footer" value="/tiles/footer.jsp" />         <put name="body"   value="/tiles/body.jsp" />      </definition>      <definition name=".myLayout2" extends=".myLayout">         <put name="title"  value="Tiles範例二" />         <put name="header" value="/tiles/header2.jsp" />      </definition> </tiles-definitions> 

在上面的定義中,.myLayout2擴充自.myLayout,並重新定義了title與header兩個屬性,其它未重新定義的屬性將直接繼承自. myLayout。

  <script type="text/javascript"><!-- google_ad_client = "pub-9750319131714390"; google_ad_width = 160; google_ad_height = 600; google_ad_format = "160x600_as"; google_ad_type = "text_image"; google_ad_channel = ""; //--> </script> <script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"> </script> <script src="http://pagead2.googlesyndication.com/pagead/expansion_embed.js"></script> <script src="http://googleads.g.doubleclick.net/pagead/test_domain.js"></script> <script>window.google_render_ad();</script>

<script type="text/javascript"><!-- google_ad_client = "pub-9750319131714390"; google_ad_width = 160; google_ad_height = 600; google_ad_format = "160x600_as"; google_ad_type = "text_image"; google_ad_channel = ""; //-->&#160;</script>   <script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"></script> <script>window.google_render_ad();</script>

<script src="http://ad2.bloggerads.net/showads.aspx?blogid=20070509000002&charset=big5"></script> <script src="http://pic.bloggerads.net/src/swfobject.js"></script> <script src="http://pic.bloggerads.net/src/bafunc.js"></script>

守護唐寶寶天使
一個月100元,一年$1,200,你可以幫助唐寶寶接受早期療育,讓他們快樂、健康、有自信的成長。
更多訊息..
Impr

<script src="http://ad2.bloggerads.net/getads3.aspx?blogid=20070509000002&fid=1&charset=big5&sid=162353328.h2pPLX30&rdm=4.782153695564872"></script>

使用XML管理模版資源相关推荐

  1. android dimensions.xml,[Android Studio #2] 操作資源XML檔

    利用Android Studio產生出第一個程式後,點擊Project按鈕觀察專案的目錄結構,再研究資源檔的使用方法,同時在第一個程式畫面裡增加另一個文字元件. Android Studio的專案目錄 ...

  2. springboot 权限管理 后台框架源码 java 项目 shiro FHAddmin

    1.代码生成器: [正反双向](单表.主表.明细表.树形表,快速开发利器)+快速表单构建器 freemaker模版技术 ,0个代码不用写,生成完整的一个模块,带页面.建表sql脚本.处理类.servi ...

  3. 前端开箱即用的中后台管理模版,建议收藏

    开箱即用的中后台管理模版,建议收藏! 今天来推荐几款开箱即用的中后台管理模版! Vue Element Admin vue-element-admin 是一个后台前端解决方案,它基于 vue2 和 e ...

  4. java计算机毕业设计高校体育器材及场地管理(附源码、数据库)

    java计算机毕业设计高校体育器材及场地管理(附源码.数据库) 项目运行 环境配置: Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX(Webstorm也行)+ Eclis ...

  5. vite打包快几款基于vue3和vite的开箱即用的中后台管理模版

    vite打包快的原因: 冷启动 1.esbuild构建依赖,go语言编写多线程打包. 2.原生的esm方式提供源码,浏览器分担了一部分工作. HMR热更新 1.缓存机制,利用浏览器http头部,源码模 ...

  6. 干货,分享!AdminEx - 响应式设计后台管理模版!!!

    今天把一套压箱底的精品拿出来分享,值得大伙收藏. AdminEx - 响应式设计后台管理模版!!! 本资源整理自互联网,仅供学习交流使用,请勿商用,坚持每日分享一套Java学习资源干货,一起提高,一起 ...

  7. java计算机毕业设计汽车美容管理(附源码、数据库)

    java计算机毕业设计汽车美容管理(附源码.数据库) 项目运行 环境配置: Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(In ...

  8. JAVA计算机毕业设计网上租房管理(附源码、数据库)

    JAVA计算机毕业设计网上租房管理(附源码.数据库) 目运行 环境项配置: Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(In ...

  9. android 资源限定符,Android 適配時資源限定符的說明

    多說幾句: 之前由於沒有仔細研究適配,一直認為android不是有dpi么,只要保證mdpi等等的值設置好且正確就可以做到適配.但是在近期的項目中,需要適配平板和手機.計算了平板和手機,dpi都是屬於 ...

最新文章

  1. 快讯 | 清华成立AI研究院,与谷歌深度合作,张钹、姚期智、Jeff Dean坐镇
  2. 【转】HTTP Header 详解
  3. 【习题4-1 Uva1589】Xiangqi
  4. antiddos翻译_AntiDDoS8000系列DDoS防御系统
  5. java满天星星代码_满天星空的代码实现
  6. javascript技巧及常用事件方法集合(全)
  7. java获取子路径_Java中路径的获取
  8. 平流式隔油池计算_海淀区平流式隔油池厂家供货
  9. 【Elasticsearch】ARS提升检索吞吐率
  10. mime.types
  11. JavaScript自有属性与原型属性
  12. ATT与intel汇编格式区分
  13. 微信开发api文档地址
  14. 百度人脸接口简单随笔
  15. 左神讲算法——超级水王问题(详解)
  16. 电脑清灰过后,CPU温度下降,显卡温度却上升了
  17. 应对不断变化的世界秩序:自治资本主义
  18. 【量化交易】永久投资组合,海龟交易法则阅读,回测与讨论
  19. 管理的挑战——软技能在项目管理中的应用案例(转)
  20. 802.11成帧封装实现(三)

热门文章

  1. 水晶报表工具栏出现红叉叉无法打印导出等问题的解决方法
  2. 你们计算机专业的学生应该看看这篇文章
  3. MFC获取键盘光标和鼠标光标所在控件的ID
  4. Android图表控件MPAndroidChart——曲线图LineChart的使用(财富收益图)
  5. java的弱引用_深入理解Java中的弱引用
  6. 如何实现点击微信内置浏览器返回按钮,返回指定页面,或者原地刷新
  7. FloatingActionButton完美显示
  8. oracle为空替换为0_详解Oracle如何用Translate来统计字符出现的次数
  9. Android开发面试题Service之startService和bindService之间的区别
  10. java达达租车接口_Java第一个项目——达达租车系统v1