使用XML管理模版資源
来源:http://caterpillar.onlyfun.net/Gossip/Struts/XmlConfig.htm
在Tiles中,您可以使用XML或是JSP來管理版面配置的相關資源,這邊先介紹使用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,就可以在定義檔中使用中文,例如:
<?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的內容如下:
<%@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中如下撰寫:
<%@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>
您可以擴充某個定義,重新定義當中所管理的頁面資源,一個例子如下:
<?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 = ""; //--> </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>
Impr
<script src="http://ad2.bloggerads.net/getads3.aspx?blogid=20070509000002&fid=1&charset=big5&sid=162353328.h2pPLX30&rdm=4.782153695564872"></script> |
使用XML管理模版資源相关推荐
- android dimensions.xml,[Android Studio #2] 操作資源XML檔
利用Android Studio產生出第一個程式後,點擊Project按鈕觀察專案的目錄結構,再研究資源檔的使用方法,同時在第一個程式畫面裡增加另一個文字元件. Android Studio的專案目錄 ...
- springboot 权限管理 后台框架源码 java 项目 shiro FHAddmin
1.代码生成器: [正反双向](单表.主表.明细表.树形表,快速开发利器)+快速表单构建器 freemaker模版技术 ,0个代码不用写,生成完整的一个模块,带页面.建表sql脚本.处理类.servi ...
- 前端开箱即用的中后台管理模版,建议收藏
开箱即用的中后台管理模版,建议收藏! 今天来推荐几款开箱即用的中后台管理模版! Vue Element Admin vue-element-admin 是一个后台前端解决方案,它基于 vue2 和 e ...
- java计算机毕业设计高校体育器材及场地管理(附源码、数据库)
java计算机毕业设计高校体育器材及场地管理(附源码.数据库) 项目运行 环境配置: Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX(Webstorm也行)+ Eclis ...
- vite打包快几款基于vue3和vite的开箱即用的中后台管理模版
vite打包快的原因: 冷启动 1.esbuild构建依赖,go语言编写多线程打包. 2.原生的esm方式提供源码,浏览器分担了一部分工作. HMR热更新 1.缓存机制,利用浏览器http头部,源码模 ...
- 干货,分享!AdminEx - 响应式设计后台管理模版!!!
今天把一套压箱底的精品拿出来分享,值得大伙收藏. AdminEx - 响应式设计后台管理模版!!! 本资源整理自互联网,仅供学习交流使用,请勿商用,坚持每日分享一套Java学习资源干货,一起提高,一起 ...
- java计算机毕业设计汽车美容管理(附源码、数据库)
java计算机毕业设计汽车美容管理(附源码.数据库) 项目运行 环境配置: Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(In ...
- JAVA计算机毕业设计网上租房管理(附源码、数据库)
JAVA计算机毕业设计网上租房管理(附源码.数据库) 目运行 环境项配置: Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(In ...
- android 资源限定符,Android 適配時資源限定符的說明
多說幾句: 之前由於沒有仔細研究適配,一直認為android不是有dpi么,只要保證mdpi等等的值設置好且正確就可以做到適配.但是在近期的項目中,需要適配平板和手機.計算了平板和手機,dpi都是屬於 ...
最新文章
- 快讯 | 清华成立AI研究院,与谷歌深度合作,张钹、姚期智、Jeff Dean坐镇
- 【转】HTTP Header 详解
- 【习题4-1 Uva1589】Xiangqi
- antiddos翻译_AntiDDoS8000系列DDoS防御系统
- java满天星星代码_满天星空的代码实现
- javascript技巧及常用事件方法集合(全)
- java获取子路径_Java中路径的获取
- 平流式隔油池计算_海淀区平流式隔油池厂家供货
- 【Elasticsearch】ARS提升检索吞吐率
- mime.types
- JavaScript自有属性与原型属性
- ATT与intel汇编格式区分
- 微信开发api文档地址
- 百度人脸接口简单随笔
- 左神讲算法——超级水王问题(详解)
- 电脑清灰过后,CPU温度下降,显卡温度却上升了
- 应对不断变化的世界秩序:自治资本主义
- 【量化交易】永久投资组合,海龟交易法则阅读,回测与讨论
- 管理的挑战——软技能在项目管理中的应用案例(转)
- 802.11成帧封装实现(三)
热门文章
- 水晶报表工具栏出现红叉叉无法打印导出等问题的解决方法
- 你们计算机专业的学生应该看看这篇文章
- MFC获取键盘光标和鼠标光标所在控件的ID
- Android图表控件MPAndroidChart——曲线图LineChart的使用(财富收益图)
- java的弱引用_深入理解Java中的弱引用
- 如何实现点击微信内置浏览器返回按钮,返回指定页面,或者原地刷新
- FloatingActionButton完美显示
- oracle为空替换为0_详解Oracle如何用Translate来统计字符出现的次数
- Android开发面试题Service之startService和bindService之间的区别
- java达达租车接口_Java第一个项目——达达租车系统v1