- 浏览: 502695 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
huyuran:
...
CheckStyle使用手册 -
三剑客二无名:
楼主给力。成功完成tomcat部署打包,上来只是为了评论一下。 ...
maven自动部署war包到tomcat -
yx09167415:
盛大在为的印象中多么的伟岸。我投了几次。机会都不给。,。。。祝 ...
盛大面试经历 -
kunsyliu:
楼主给力。成功完成tomcat部署打包
maven自动部署war包到tomcat -
MrLee23:
哎,中枪了。。。
坏公司鉴别方法
10.2.2 <decorator:usePage> 、 <decorator:useHtmlPage> 和 <decorator:head> 标签的使用介绍
技术要点
<decorator:head> 标签的作用和普通 html 页面中 <head> 标签中相同。是在页面布局中显示被装饰视图界面文件的头部分属性定义。而 <decorator:usePage> 和 <decorator:useHtmlPage> 标签作用相同都是显示被装饰页面中使用的标签属性。 这两个标签存在的原因是因为 siteMesh 的 <decorator:body> 、 <decorator:head> 、 <decorator:title> 标签只能解析普通视图界面中 <body> 、 <head> 、 <title> 等几个标签中的内容,不能直接读取这些标签的属性内容,所以用这两个标签来扩展该功能。
<decorator:head> 标签的介绍和相关注意点。
使用 <decorator:usePage> 和 <decorator:useHtmlPage> 标签读取被装饰页面中标签属性的使用方法。
演示代码
被装饰页面 firstPage.jsp 代码:
<!-------------------文件名:firstPage.jsp -------------> <%@ page contentType="text/html; charset=gb2312"%> <%@ taglib uri="http://www.opensymphony.com/sitemesh/decorator" prefix="decorator"%> <html> <!-- 定义被装饰的JSP页面的meta、body等属性的内容 --> <head> <title>使用标签decorator:usePage</title> <meta name="description" content="记述"> <meta name="author" content="作者"> </head> <body onload="调用某JavaScript方法"> </body> </html>
显示标签属性内容和调用 <decorator:head> 标签装饰器视图文件代码:
<!-----------------文件名:3PartLayoutTemplate.jsp-----------> <%@ page contentType="text/html; charset=gb2312"%> <%@ taglib uri="http://www.opensymphony.com/sitemesh/decorator" prefix="decorator"%> <%@ taglib uri="http://www.opensymphony.com/sitemesh/page" prefix="page"%> <html> ……… <!-- 使用decorator:head显示被装饰页面的head标签中内容(除title以外) --> <decorator:head /> ………… <!-- 使用decorator:usePage标签,打印出被装饰页面的body等标签的属性内容 --> <!-- usePage相当于JSP中<useBean>标签定义的JavaBean类名 --> <decorator:usePage id="usePage" /> <tr > <td align="center" colspan=2> <h2>使用decorator:usePage标签各属性内容:</h2> </td> </tr> <% //取得被装饰页面的标签属性名,作为key值组合成一字符串数组。 String[] element = usePage.getPropertyKeys(); for(int i=0;i<element.length;i++) {%> <tr > <td align="right" > <%=i+1%> </td> <td > <!-- 各元素为被装饰页面标签属性名,作为key值,由 getProperty方法得到value即属性内容--> <%=element[i]%>:<%=usePage.getProperty(element[i])%> </td> </tr> <% }%> <!-- 使用decorator:useHtmlPage标签,打印出被装饰页面的body等标签的属性内容 --> <!-- HTMLPage相当于JSP中<useBean>标签定义的JavaBean类名 --> <decorator:useHtmlPage id="HTMLPage" /> <tr > <td align="center" colspan=2> <h2>使用decorator:useHtmlPage标签各属性内容:</h2> </td> </tr> <% //取得被装饰页面的标签属性名,作为key值组合成一字符串数组。 String[] elementOfHTMLPage = HTMLPage.getPropertyKeys(); for(int i=0;i<elementOfHTMLPage.length;i++) {%> <tr > <td align="right" > <%=i+1%> </td> <td > <!-- 各元素为被装饰页面标签属性名,作为key值,由 getProperty方法得到value即属性内容--> <%=elementOfHTMLPage[i]%>:<%=HTMLPage.getProperty(elementOfHTMLPage[i])%> </td> </tr> <% }%> ………
效果图如图 10.3 所示:
图 10.3 sitemesh 使用 <decorator:usePage> 和 <decorator:useHtmlPage> 标签的效果图
在图 10.3 显示的页面中用鼠标右击,在弹出菜单中选择“查看源文件”,可查看生成的 <head> 标签内容,如图 10.4 所示:
图 10.4 sitemesh 使用 <decorator:head> 标签的效果图
代码解释
( 1 )该示例中笔者将被装饰文件 firstPage.jsp 内容重新做了调整。在 <head> 和 <body> 标签中增加了一些属性。之前也已经说过原来的 sitemesh 装饰标签值能显示 <head> 和 <body> 之间的内容,不能显示它们的属性。但是使用 <decorator:usePage> 和 <decorator:useHtmlPage> 就能显示这些属性的内容。
( 2 )请读者仔细看装饰器文件 3PartLayoutTemplate.jsp 中代码 。这里使用了 <decorator:usePage> 和 <decorator:useHtmlPage> 标签,其中的 id 属性定义了使用这两个标签的 id 名,而这些 id 名竟然可以在 JAVA 代码中作为一个对象来使用。如果有 JSP 基础的读者就能发现这两个标签其实和 JSP 中的 <jsp:useBean> 使用方式如出一辙。说简单点就是利用这两个标签各自定义了一个 JAVA 对象。而且其中的 getPropertyKeys 和 getProperty 方法都是可以得到属性和属性代表的值内容。
如图 10.3 所示,通过循环遍历将被装饰视图文件 firstPage.jsp 中 <head> 和 <body> 属性名和代表的值内容都显示出来。这也更加证明之前所说的利用 <decorator:usePage> 和 <decorator:useHtmlPage> 标签可以直接读取 被装饰视图文件中 <head> 和 <body> 属性值 。
( 3 )在 3PartLayoutTemplate.jsp 中代码笔者还使用了 <decorator:head> 标签 。在图 10.4 说明中也介绍了通过查看源文件方式可以知道它显示了被装饰视图文件 firstPage.jsp 中 <head> 中的内容,唯一没有显示的是 <title> 内容。而 title 内容正式由前一小节中介绍的 <decorator:title> 标签来显示。
( 4 ) sitemesh 的装饰标签还有其他一些,鉴于笔者感觉不是很实用,而且使用的目的有点多此一举。因此这里就不介绍了,有兴趣的读者可以查阅其他 sitemesh 资料。
发表评论
-
struts2讲义每章节代码包汇总
2009-11-12 20:57 8249不知道javaeye一个blog允许上传多大的附件。 先试试 ... -
放出完整的Struts2讲义
2009-11-06 08:17 15234谢谢各位长期以来的支持~ -
Struts2讲义45
2009-11-04 09:40 180310.2 sitemesh 高级应用 在 ... -
Struts2讲义44
2009-11-03 08:26 1820第10 章 Struts2 页面布局实现 ... -
Struts2讲义43
2009-11-02 13:21 22919.3 用户主动选择国 ... -
Struts2讲义42
2009-11-01 02:05 15399.2.3 Struts2 临时范围属性文件国 ... -
Struts2讲义41
2009-10-31 11:36 14599.2.2 Struts2Action 范围属 ... -
Struts2讲义40
2009-10-30 00:16 15909.2 Struts2 国际化使用范围说明 ... -
Struts2讲义39
2009-10-29 10:44 17599.1.2 占位符国际化使用 ... -
Struts2讲义38
2009-10-28 08:56 2095第9 章 Struts2 国际化 在第 ... -
Struts2讲义37
2009-10-27 15:23 18438.4 Struts2 输入校验器大全 在 ... -
Struts2讲义36
2009-10-26 11:15 15908.3 集合类型输入校验介绍 于之前类 ... -
Struts2讲义35
2009-10-25 14:21 13098.2 利用配置文件进行输入校验方法说明 ... -
Struts2讲义34
2009-10-24 01:47 1788第8 章 Struts2 输入校验 ... -
Struts2讲义33
2009-10-23 08:37 16167.2 类型转换发生异常处理方案 类型 ... -
Struts2讲义32
2009-10-22 13:19 19357.1.3 Set 集合类型数据类型转换功能 ... -
Struts2讲义31
2009-10-21 08:14 17857.1.2 List 集合类型数据类型转换功能 ... -
Struts2讲义30
2009-10-20 09:11 1755第7 章 Struts2 类型转换技术 ... -
Struts2讲义29
2009-10-19 08:33 18146.3 JasperReports 报表视图技术使 ... -
Struts2讲义28
2009-10-17 12:23 18016.2 freemarker 视图技术使用介绍 ...
相关推荐
一个很好的关于Struts2的讲义!struts2讲义struts2讲义struts2讲义struts2讲义struts2讲义struts2讲义
struts2入门讲义
struts2讲义struts2讲义struts2讲义struts2讲义struts2讲义struts2讲义struts2讲义struts2讲义struts2讲义struts2讲义struts2讲义
针对Struts2的具体技术细节进行了详细附例的说明。
传智博客的struts2的讲义,ppt格式,很好的东西。
学习struts2的最好帮手,内容细致,讲解透彻
Struts2讲义
比较全面的struts2的讲解,javaeye上也有帖子,相当不错。个人建议新手看看
第2章 Web基础技术简介第3章 Struts2核心技术第4章 另一Struts2核心技术:拦截器第5章 Struts2标签库第6章 Struts2非JSP视图技术第7章 Struts2类型转换技术第8章 Struts2输入校验第9章 Struts2国际化第10章 Struts2...
struts2讲义.doc
struts2讲义内容详细,分类多 struts2讲义内容详细,分类多
很不错的struts2 教程 讲义.(pdf)
struts2讲义,全面的解释了struts2。
Struts2讲义 作者:吴峻申 目录 第1章 Struts过时了吗? 10 1.1 Struts历史发展过程 10 1.2 Struts2的“简历” 13 1.2.1 标签库介绍 13 1.2.2 拦截器应用目的 14 1.2.3 FilterDispatcher和Action概述 14 1.2.4 ...
Struts培训讲义Struts培训讲义Struts培训讲义
西安野马计算机培训学校STRUTS2讲义,共2个章节
黑暗浪子写的struts2讲义,很全面、细致。
传智2016框架视频配套讲义----struts2_day04讲义.pdf ,需要的下载了