一:
Struts1.1以后增加了Tiles包使得struts面的理方面多了一种选择.并且更容易实现
的重用。
Tiles对页面的划分有点象jakarta的另外一个Turbine中的TDK。增加了layout的概念.
就是把一个面划分。通常的来一个面大概可以划分如下几
head:存放一个运用的公共信息:logo等,如果是网站可能是最上面的一.
menu面菜:放置一个运用中需要使用的菜,或者在一个面都使用的.
footer面尾部:如版信息等.
body面主内容:面相独立的内容.
如果按上面的划分那对每一个面我只要写body里面的内容,其他的就可以共享重用.
如果大多数面的布局基本相同我甚至可以使用一个jsp文件根据不同的参数用不同的body.

二:Tiles配置和基本配置文件介
Tiles有一个配置文件:l
l一个面的成元素和形式。
下面我将明如下所示的一个l文件
l
-----------------------------------------------
<tiles-definitions>
<!--/layouts/classicLayout.jsp成名称site.mainLayout-->
<!--后面将附/layouts/classicLayout.jsp的内容-->
<definition name="site.mainLayout" path="/layouts/classicLayout.jsp">
<put name="title" value="Tiles Blank Site" />
<put name="header" value="/tiles/common/header.jsp" />
<put name="menu" value="u.bar" />
<!--menuu.bar对应-->
<put name="footer" value="/tiles/common/footer.jsp" />
<put name="body" value="/tiles/body.jsp" />
</definition>
<!--site.index.pagesite.mainLayout-->
<definition name="site.index.page" extends="site.mainLayout" >
<put name="title" value="Tiles Blank Site Index" />
<put name="body" value="/tiles/body.jsp" />
<!--以上两个元素将替site.mainLayout中的元素-->
</definition>

<definition name="u.bar" path="/layouts/vboxLayout.jsp" >
<putList name="list" >
<add value="u.links" />
<add value="u.documentation" />
</putList>
</definition>
</tiles-definitions>

附:/layouts/classicLayout.jsp
--------------------------------
<html>
<head>
<title><tiles:getAsString name="title"/>
</title>
</head>

<body bgcolor="#ffffff" text="#000000" link="#023264" alink="#023264" vlink="#023264">
<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>

l里面配置tiles,配置完后对应struts action servlet的配置如下:
l
-----------------

<servlet>
<servlet-name>action</servlet-name>
<!-- Specify servlet class to use:
- Struts1.0.x: ActionComponentServlet
- Struts1.1: ActionServlet
- no Struts: TilesServlet
-->
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>

<!-- Tiles Servlet parameter
Specify configuration file names. There can be several comma
separated file names
-->
<init-param>
<param-name>definitions-config</param-name>
<param-value>/l</param-value>
</init-param>

<!-- Tiles Servlet parameter
Specify Tiles debug level.
O : no debug information
1 : debug information
2 : more debug information
-->
<init-param>
<param-name>definitions-debug</param-name>
<param-value>1</param-value>
</init-param>

<!-- Tiles Servlet parameter
Specify Digester debug level. This value is passed to Digester
O : no debug information
1 : debug information
2 : more debug information
-->
<init-param>
<param-name>definitions-parser-details</param-name>
<param-value>0</param-value>
</init-param>
param name
<!-- Tiles Servlet parameter
Specify if xml parser should validate the Tiles configuration file.
true : validate. DTD should be specified in file header.
false : no validation
-->
<init-param>
<param-name>definitions-parser-validate</param-name>
<param-value>true</param-value>
</init-param>


<init-param>
<param-name>config</param-name>
<param-value>/l</param-value>
</init-param>
<init-param>
<param-name>validate</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>debug</param-name>
<param-value>2</param-value>
</init-param>
<init-param>
<param-name>detail</param-name>
<param-value>2</param-value>
</init-param>

<load-on-startup>2</load-on-startup>
</servlet>

三:使用Tiles
如果已配置好l,接下来就可以在jsp文件中使用些定了。
有如下的方式使用tiles
3.1:
<tiles:insert definition="site.mainLayout" flush="true" />
插入site.mainLayout标记的一

3.2
<tiles:insert template="/tutorial/basic/myFramesetLayout.jsp" >
<tiles:put name="title" content="My first frameset page" direct="true" />
<tiles:put name="header" content="/tutorial/common/header.jsp" direct="true"/>
<tiles:put name="footer" content="/tutorial/common/footer.jsp" direct="true"/>
<tiles:put name="menu" content="/tutorial/basic/menu.jsp" direct="true"/>
<tiles:put name="body" content="/tutorial/basic/helloBody.jsp" direct="true"/>
</tiles:insert>


/tutorial/basic/myFramesetLayout.jsp
---------------------------------
<html>
<head>
<title><tiles:get name="title"/></title>
</head>

<frameset rows="73, *, 73">
<frame src="<%=ContextPath()%><tiles:get name="header" />" name="header" >
<frame src="<%=ContextPath()%><tiles:get name="body" />" name="body" >
<frame src="<%=ContextPath()%><tiles:get name="footer" />" name="footer" >
</frameset>



</html>
插入/tutorial/basic/myFramesetLayout.jsp
并把title值设:My first frameset page
header/tutorial/common/header.jsp


四:后
Tiles的使用在他的文档里面写的比较详细。以上是一些简单和基本的使用。具体的文档可以看
Struts里面的一个tiles-documentation.war的包。但即使是个包也不是很全。可以通上的的
接到作者的主上去。
个人得使用Tiles在做企运用的候可能不如在做网站那更能体现优越性。但在系

设计候考划好整个UI,那在修改和维护候将省不少的工作量,因通常UI的确定
在代码编束和完成,所有尽可能的使用多个子面构成一个面,后面的美化和维护就比直接
维护一个很大的面容易

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。