在页面设计的时候,有些内容可能是多个页面都包含的,例如多个页面都包含相同的页眉。对于这些内容,我们都希望提取出来成独立的文件,以便于以后发生修改的时候,只需要修改这个独立的文件,而不用每个页面都修改一遍。
Websharp模板也提供了类似的功能,它是通过{%@FileName%} 这种标签来表示的。类如main.htm里面要包含head.htm,可以在main.htm的HTML代码里面加入{%head.htm%}
对于被包含进来的文件的路径的搜寻,按照如下的规则进行:
1) 如果被包含文件以“/”开始,例如“/include/head.htm",则遵循一般的模板文件的搜寻规则,可以参考“模板文件的查找与加载”一章。
2)如果被包含文件不是以“/”开始,例如“head.htm”,则其开始路径就是父模板文件(当前的模板文件)的路径,而且路径是唯一的,例如当前模板路径是/root/test/main.html,则被包含文件的路径就是/root/test/head.htm。所有如果main.htm和head.htm是同一目录,可以直接用{%head.htm%}就可以包含进来了。
举例说明
下面在相同的目录下创建三个文件来演示包含模板的功能:
1) 创建主模板IncludeTest.htm,包含如下简单的代码:
<html>
<body>
{%@IncludeHead.htm%}
Welcome, everybody!
</body>
</html>
2)创建主模板中包含的模板IncludeHead.htm:
Menu1 Menu2 Menu3 Menu4<br>
3) 编写程序IncludeTest.jsp,代码里面调用了IncludeTest.htm
<%@ page import="websharp.core.*,websharp.web.*,websharp.util.*"%>
<%
Websharp websharp = new Websharp("IncludeTest.htm", "", request, response);
websharp.render( null);
%>
程序演示的结果是:
Menu1 Menu2 Menu3 Menu4
Welcome, everybody!
可以看到IncludeTest.htm的内容和IncludeHead.htm里面的内容都显示出来了。