Struts Tiles 页面模板引擎初实践
Struts Tiles 是一个页面模板引擎,属于视图层。定义页面布局,不指定里面的内容,当web页面运行时,才把特定的jsp内容插入到模板中显示。
该案例涉及到的file:web.xml,struts-default.xml,tiles-defs.xml,sidepanel.jsp, welcome.jsp
1. Web.xml
<!--Action Servlet Configuration -->
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-default.xml</param-value>
</init-param>
<init-param>
<param-name>config/acctmgmt</param-name>
<param-value>/WEB-INF/struts-acctmgmt.xml</param-value>
</init-param>
<init-param>
<param-name>debug</param-name>
<param-value>3</param-value>
</init-param>
<init-param>
<param-name>detail</param-name>
<param-value>3</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>
2. Struts-default.xml
引入tiles-defs.xml文件
<plug-inclassName="org.apache.struts.tiles.TilesPlugin" >
<set-propertyproperty="definitions-config"
value="/WEB-INF/tiles-defs.xml"/>
<set-propertyproperty="moduleAware" value="false" />
</plug-in>
3. tiles-defs.xml
定义tiels,创建tiles组件,配置模板资源
<tiles-definitions>
<!--site layout -->
<definitionname="siteLayout" path="/sitelayout.jsp">
<putname="header" value="header.jsp" />
<putname="main" value="mainLayout" />
<putname="footer" value="footer.jsp" />
</definition>
<!--layout of main area -->
<definitionname="mainLayout" path="mainlayout.jsp">
<putname="sidepanel" value="sideLayout" />
<putname="content" value="contents" />
</definition>
<!--layout of sidepane -->
<definitionname="sideLayout" path="sidepanel.jsp">
<putname="leftupper"value="../upper.jsp" />
<putname="leftlower"value="../lower.jsp" />
</definition>
<!--layout of content area -->
<definitionname="contents" path="contents.jsp">
<putname="section1" value="" type="string" />
<putname="section2" value="" type="string" />
<putname="section3" value="" type="string" />
<putname="section4" value="" type="string" />
<putname="section5" value="" type="string" />
<putname="section6" value="" type="string" />
</definition>
</tiles-definitions>
4. sidepanel.jsp
引用tiles,创建模板布局
<%@ tagliburi="/WEB-INF/struts-tiles.tld" prefix="tiles" %>
<table role="presentation"cellpadding="2" cellspacing="0">
<tr>
<tdvalign="top">
<table role="presentation">
<tiles:insert attribute="leftupper"ignore="true"/>
<tr>
<td>
<div>
<tiles:insert attribute="leftlower" ignore="true"/>
</div>
</td>
</tr>
</table>
</td>
</tr>
</table>
5. welcome.jsp
在jsp页面中使用tiles
<%@ tagliburi="/WEB-INF/struts-tiles.tld" prefix="tiles" %>
<tiles:insert definition="siteLayout"flush="true">
<tiles:put name="pageTitle" type="string"value="Site Entrance" />
<tiles:put name="pageHeader"type="string" value="" />
<tiles:put name="content"type="string">
<!-- page content goes here -->
</tiles:put>
</tiles:insert>
转载于:https://blog.51cto.com/faraway/1736576
Struts Tiles 页面模板引擎初实践相关推荐
- struts -Tiles介绍
來源:http://hithoper.blog.hexun.com/17860631_d.html 安装和配置Tiles 在您能够使用Tiles 框架之前,您必须确保它已安装并正确的配置在web容器中 ...
- Struts tiles入门(最最简单的例子)
前提物质条件: 1.Struts Framework; 2.struts-tiles.tld 一. web.xml配置 <servlet> <se ...
- Struts Tiles 框架概述
Tiles 框架为创建 Web 页面提供了一种模板机制,它能将网页的布局和内容分离.允许先创建模板,然后在运行时动态地将内容插入到模板中. 在我们已知的创建符合式网页的方法中,包括: 采用基本的JSP ...
- 音视频终端引擎优化实践
本文由百度智能云-视频云终端技术架构师 --李明路,在百度开发者沙龙线上分享的演讲内容整理而成.内容从音视频终端引擎的概念出发,梳理了音视频终端引擎的发展和技术演进,重点介绍了音视频终端引擎的关键技术 ...
- 在Android上使用libgdx-box2d物理引擎的实践-20220113
根据文章"在Android上使用libgdx-box2d物理引擎"后实践过程 1. gralde报错解决,猜测是gralde语法和版本号问题. 1.去maven库手动下载com.b ...
- 从长沙到南京,看“ACE交通引擎”落地实践的进程
文|曾响铃 来源|科技向令说(xiangling0815) 2020年4月19日或将成为中国自动驾驶行业又一个标志性的日子. 百度在当天宣布,Apollo Robotaxi服务上线百度地图及百度APP ...
- SpringMVC集成Tiles布局引擎框架
Tiles布局框架, http://tiles.apache.org/ Spring已经对Tiles进行了集成.页头页尾公共模板页要靠这个,不然重复代码太多. <dependency>&l ...
- Python《爬虫初实践》
今天转转悠悠,突然不知道该学些什么,偶然的一瞬间脑子里想到了爬虫,这个我很早就了解的技术,我却没有亲自实践过,于是这次想好好地去了解下,学习下简单的使用方法,毕竟自以后的深度学习中也是有用处的,爬取图 ...
- Fibo Rule决策引擎应用实践
1. 决策引擎介绍 什么是决策 决策,指决定的策略或办法.是人们为各种事件出主意.做决定的过程.它是一个复杂的思维操作过程,是信息搜集.加工,最后作出判断.得出结论的过程. 什么是决策引擎 决策引擎是 ...
- flowable 查询完成的流程_flowable流程引擎初体验,完成一个请假流程
flowable是一个用Java写的轻量级商业流程引擎,用它可以部署BPMN2.0(在工业界被广泛接受的XML标准)流程定义, 并且可以创建流程实例,驱动节点流转,存储相关的历史数据等等.可能更多人先 ...
最新文章
- RabbitMQ 异常与任务分发
- matplotlib可视化基本散点图、在图像多个指定区域绘制方框、进行自定义色彩填充(Draw Multiple Rectangles)
- 不使用配置文件动态注册HttpModule
- BP神经网络-- C语言实现
- Linux 0.11 实验环境搭建
- 顺序循环队列队满队空的两种判别方式
- mpc5774时钟监控寄存器_单片机如何才能不死机之内外部时钟
- 关于欧拉工程的一道递推题
- python 多继承 __new___Python3中的__new__方法以及继承不可变类型类的问题
- Maven工程 报 Diamond types are not supported at language level ‘5‘
- aws lambda使用_使用AWS Lambda的CloudWatch事件通知
- DB、ETL、DW、OLAP、DM、BI关系结构图
- 「Python 编程」编码实现网络请求库中的 URL 解析器
- 如何入门AI?五大新手项目奉上
- 加密文档的三种基本方法
- 如何自学成为设计师_自学能成为一名平面设计师吗?如何提高审美?
- 基于改进K-means聚类和隐马尔可夫链的汽车行驶工况构建
- JSP页面传值方法总结
- 写一款汽车维修保养软件,让维修保养管理更加轻松,JavaScript 作用域
- 华为首款64位处理器手机跑分曝光
热门文章
- unity创建一个简单对象的开销_SpringBoot第一篇:创建一个简单的SpringBoot
- matlab状态转空间,matlab - 如何在Matlab中使用状态空间模型避免tf()命令 - 堆栈内存溢出...
- linux 内核挂起 ping,Linux内核安全详解 ping到死复活方法
- c语言冒泡排序法程序填空_五种数组的排序方法(C语言)Part1
- 安卓app执行linux命令,如何在android程序中执行adb shell指令
- python手写识别系统gui_求大神帮助,怎么用wxpython编写一个数字手写体识别系统!...
- Python项目开发基础 -- 函数参数与数据库连接参数
- idea 自动添加doc_公共组件需求自动录入TAPD
- 用 PHP 来玩直播猜题小游戏,一起 happy coding.
- 在云端飞舞,遨游云浏览器体验感受