`
黑暗浪子
  • 浏览: 507868 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Struts2讲义45

阅读更多

10.2  sitemesh 高级应用

在之前小节中笔者简单介绍了一些 sitemesh 中特有的装饰标签。在本节中继续介绍开发中比较实用的几个 sitemesh 装饰标签,其目的是让读者能针对 Struts2 页面布局有更深刻的认识。

10.2.1   <page:applyDecorator> <decorator:getProperty> 标签的使用介绍

技术要点

运用本小节标题两个标签的目的如下:前者是允许开发者可以自行选择使用哪一个装饰器视图界面。后者是让指定的装饰器页面中定义的参数在被装饰的视图界面中显示参数值内容。

<page> 标签的介绍和相关注意点。

读取装饰器页面的参数值内容,并显示在被装饰页面的使用方式介绍。

演示代码

定义可以由开发者自行指定的装饰器视图界面的代码:

<!--------------------文件名:decorators.xml --------------->
…………
  <!-- 定义装饰器,该装饰器没有被指定可装饰的视图界面,而是在视图界面中来制定需要它装饰的视图界面-->
  <decorator name="panel" page="panel.jsp"></decorator>
…………
 

 

decorators.xml 文件定义的 panel.jsp 装饰器视图文件代码:

<!--------------------文件名:panel.jsp --------------------->
………
         <head>
                   <title>
                   <!-- 被装饰页面的<title>中内容在这里填充 -->
                   <decorator:title default="panel页面" />
                   </title>                  
         </head>
         <body bgcolor="#f7c800" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
                   <!-- 被装饰页面的<body>中内容在这里填充 -->
                   <decorator:body /><br>
                   <!-- 得到已定义的参数内容并使用下列标签在这里显示 -->                                    
                   <decorator:getProperty property="email"></decorator:getProperty>
         </body>
 

 

在原有装饰器视图文件中定义可以指定其他装饰器并带有具体参数值内容定义的代码:

<!------------文件名:3PartLayoutTemplate.jsp---------------->
…………
                   <td width="217" height="48"  valign="top" align="center">
                                               <!-- 在JSP视图界面指定由panel装饰器装饰的页面 -->
                                               <page:applyDecorator page="/jsp/body/page.jsp" name="panel" >
                                                        <!-- 设置参数值内容 -->
                                                        <page:param
name="email">frank_wjs@hotmail.com</page:param>
                                               </page:applyDecorator>
                                     </td>                                     
                                     <td >
                                               <decorator:body></decorator:body>
                                     </td>
…………
 

 

效果图如图 10.2 所示:

 

10.2  sitemesh 自行指定装饰器的效果图

代码解释

1 )如果要使用 <page> 标签则在装饰器页面需要申明“ <%@ taglib uri="http://www.opensymphony.com/sitemesh/page" prefix="page"%> ”。这样就可以使用该标签。

注意: sitemesh 采取松耦合理念,因此被装饰的视图界面往往都是 JSP HTML 等简单的视图文件。不需要使用 <page> <decorator> 标签。这些 sitemesh 的装饰标签往往都是在装饰器视图文件中定义。

2 )在本示例中还是使用类似于上一小节的示例代码。这里只是在 decorators.xml 中又定义了一个没有特殊指定被装饰页面的装饰器 panel 。而在原来装饰器视图文件 3PartLayoutTemplate.jsp 代码中指定了需要被panel 装饰器装饰的视图界面文件page.jsp 。由代码可知笔者调用了<page:applyDecorator> 标签。page 属性指定了被装饰的page.jsp 视图文件。而且其中又嵌套了< page:param > 标签,定义了一个email 参数,该参数值是笔者的MSN 邮箱。name 属性就是参数名内容,这里是“email ”。

这样其实原来装饰器视图界面 3PartLayoutTemplate.jsp 中包含了另外一个装饰器视图界面文件panel.jsp 。因此实现多个装饰器文件同时装饰文件的功能。如果开发中根据特定需求,需要在页面布局中某一部分动态装饰视图文件,其他部分不需要装饰视图文件时候。这样的功能恰好能满足特定需求。因为只需要使用 <page:applyDecorator> 标签来指定需要装饰的那一部分调用的装饰器文件就能达到局部装饰的目的。 而且如果开发者还是想实现一个视图文件由唯一一个装饰器文件装饰,又可以将这段使用 <page:applyDecorator> 标签的代码删去或注释掉即可。实现了笔者之前曾经说过的松耦合理念。

3 )在装饰器文件 panel.jsp 代码中也显示,使用 <decorator:getProperty> 标签可以在被装饰的视图界面文件中显示指定的装饰器文件中使用的参数值。 property 属性中的内容就是在 < page:param > 标签中定义的参数name 属性。在图10.2 中左边的红框中也显示了被panel 装饰器装饰的page.jsp 显示了笔者的MSN 邮箱。达到了局部装饰的目的。

  • 大小: 172.3 KB
分享到:
评论

相关推荐

    struts2讲义 struts2讲义struts2讲义struts2讲义struts2讲义

    ### Struts2讲义知识点概览 #### 一、Struts2的历史与发展 - **Struts框架的发展历程**: - Struts最初版本发布于2000年,是Java Web开发领域的一个重要里程碑。 - 随着时间的发展和技术的进步,Struts逐渐暴露...

    struts2讲义

    ### Struts2框架入门知识点详解 #### 一、Struts2框架概述 ##### 1.1 Struts2简介 Struts2是一个基于MVC(Model-View-Controller)设计模式的Web应用框架,用于简化Java Web应用程序的开发过程。与传统的Java Web...

    struts2讲义 DOC版

    struts2讲义struts2讲义struts2讲义struts2讲义struts2讲义struts2讲义struts2讲义struts2讲义struts2讲义struts2讲义struts2讲义

    struts2讲义-详解

    本讲义将详细介绍Struts2的核心概念、工作原理以及如何在实际项目中应用。 一、Struts2简介 Struts2是Apache软件基金会的开源项目,它是Struts1的升级版,旨在解决Struts1在可扩展性和灵活性上的不足。Struts2提供...

    struts2讲义,讲解struts2的框架

    在本讲义中,我们将深入探讨Struts2的基本概念、依赖的库、启动配置以及配置文件。 首先,开发Struts2应用需要依赖一些核心的JAR文件。这些文件包括: 1. `struts2-core-2.x.x.jar`:这是Struts2框架的核心库,...

    原创struts2讲义2.pdf

    ### Struts2框架详解 #### 一、Struts2框架介绍与概述 ##### 1.1 Struts2框架概述 Struts2是一个基于MVC(Model-View-Controller)模式的开源Java Web应用框架,它提供了强大的功能来帮助开发者构建灵活、可扩展...

    《Struts2讲义》吴峻申【电子书】

    第2章 Web基础技术简介第3章 Struts2核心技术第4章 另一Struts2核心技术:拦截器第5章 Struts2标签库第6章 Struts2非JSP视图技术第7章 Struts2类型转换技术第8章 Struts2输入校验第9章 Struts2国际化第10章 Struts2...

    Struts2讲义(Word文档格式)

    本讲义详细介绍了Struts2框架的各个方面,帮助开发者从基础到进阶全面掌握其用法。 1. **Struts2概述** Struts2是Apache软件基金会的开源项目,它继承了Struts1的优点并解决了其局限性,提供了更优秀的行动控制器...

    struts2讲义.doc

    ### Struts2讲义知识点概览 #### 一、Struts2的历史与发展 - **Struts框架的演变**:从Struts1到Struts2,框架经历了从MVC(Model-View-Controller)架构的经典实践到更为灵活、强大的迭代升级。 - **Struts2的...

    struts2 教程 讲义.(pdf)

    本教程讲义深入浅出地介绍了Struts2的核心概念和技术,旨在帮助开发者快速掌握这个框架的使用。 在Struts2中,主要知识点包括: 1. **MVC设计模式**:MVC模式是软件工程中的经典设计模式,它将应用程序分为模型...

    struts2讲义,解析

    这个“struts2讲义”显然提供了一个全面的教程,旨在帮助学习者理解和掌握Struts2的核心概念和技术。以下是Struts2的一些关键知识点: 1. **MVC模式**:Struts2基于Model-View-Controller(MVC)设计模式,它将应用...

    Struts2讲义1

    Struts2讲义1 Struts2是一款基于MVC(Model-View-Controller)设计模式的Java Web开发框架,由Apache软件基金会维护。它继承了Struts1的优点,并结合了WebWork框架的功能,提供了更强大的控制层解决方案。Struts2的...

    西安野马计算机培训学校STRUTS2讲义

    西安野马计算机培训学校的STRUTS2讲义,可能涵盖了这一框架的基础知识和高级特性,帮助学员理解和掌握Struts2的核心概念。 首先,Struts2的基础部分可能包括以下几个方面: 1. **架构原理**:讲解Struts2的MVC设计...

    黑暗浪子写的struts2讲义.pdf

    Struts2是Apache软件基金会...总的来说,黑暗浪子的这本Struts2讲义涵盖了Struts2的各个方面,无论对于初学者还是有经验的开发者,都是一个宝贵的参考资料,能帮助读者深入理解和熟练运用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 ...

Global site tag (gtag.js) - Google Analytics