Struts Tiles框架


第 16 章 Tiles 框架 在开发 Web 站点时,常常要求同一站点的所有 Web 页面保持一致的外观,比如有相同 的布局、页头、页尾和菜单。如图 16-1 所示为一种典型的网页布局。 图 16-1 一种典型的网页布局 如图 16-1 所示,网页被划分为四个部分:Header,Menu,Footer 和 Content。对于同 一站点的所有 Web 页面,Header,Menu 和 Footer 部分的内容相同,而只有 Content 部分的 内容不相同。如果采用基本的 JSP 语句来编写所有的 Web 页面,显然会导致大量的重复编 码,增加开发和维护成本。 Tiles 框架为创建 Web 页面提供了一种模板机制,它能将网页的布局和内容分离。它允 许先创建模板,然 后 在 运行时动态地将内容插入到模板中。Tiles 框架是建立在 JSP 的 include 指令基础上的,但它提供了比 JSP 的 include 指令更强大的功能。Tiles 框架具有如下特性: l 创建可重用的模板 l 动态构建和装载页面 l 定义可重用的 Tiles 组件 l 支持国际化 Tiles 框架包含以下内容: l Tiles 标签库 l Tiles 组件的配置文件 l TilesPlugIn 插件 本章循序渐进地介绍了构建如图 16-1 所示的复合式 Web 页面的若干方案,每个方案 都建立在上一个方案的基础之上。本章的样例程序为 tilestaglibs 应用,针对每一种方案, 都提供了独立的版本。 16.1 采用基本的 JSP 语句创建复合式网页 创建动态 Web 页面的最基本的办法是为每个页面创建独立的 JSP 文件。如图 16-2 和 图 16-3 所示分别为 tilestaglibs 应用的主页 index.jsp 和产品页面 product.jsp。 menu header footer content PDF 文件使用 "pdfFactory" 试用版本创建 www.fineprint.com.cn 精通 Struts:基于 MVC 的 Java Web 设计与开发 384 本节介绍的 tilestaglibs 应用的源程序位于配套光盘的 sourcecode/ tilestaglibs/version1/tilestaglibs 目录下。如果要在 Tomcat 上发布这个应用, 只要把 version1 目录下的整个 tilestaglibs 子目录复制到/webapps 目录下即可。 图 16-2 tilestaglibs 应用的主页 index.jsp 图 16-3 tilestaglibs 应用的产品页面 product.jsp 例程 16-1 和例程 16-2 分别为 index.jsp 和 product.jsp 的源代码。 例程 16-1 index.jsp <%@ page contentType="text/html; charset=UTF-8" %> TilesTaglibs Sample <%-- One table lays out all of the content for this page --%> <%-- Sidebar--%> <%-- Main content--%> PDF 文件使用 "pdfFactory" 试用版本创建 www.fineprint.com.cn 精通 Struts:基于 MVC 的 Java Web 设计与开发 386
<%-- Sidebar top --%> PDF 文件使用 "pdfFactory" 试用版本创建 www.fineprint.com.cn 第 16 章 Tiles 框架 385 <%-- Sidebar bottom --%>
Links

Home
Products
Hot Link1
Hot Link2
Hot Link3

<%-- Header--%> <%-- Content--%> <%-- Footer--%>
Welcome to ABC Inc.
Page-specific content goes here

Thanks for stopping by!
例程 16-2 product.jsp <%@ page contentType="text/html; charset=UTF-8" %> TilesTaglibs Sample <%-- One table lays out all of the content for this page --%> <%-- Sidebar--%> <%-- Main content--%>
<%-- Sidebar top --%> <%-- Sidebar bottom --%>
Links

Home
Products
Hot Link1
Hot Link2
Hot Link3

<%-- Header--%> <%-- Content--%> <%-- Footer--%>
PDF 文件使用 "pdfFactory" 试用版本创建 www.fineprint.com.cn 第 16 章 Tiles 框架 387 Welcome to ABC Inc.
Products

  • product1

  • product2

  • product3


  • Thanks for stopping by!
    由例程 16-1 和例程 16-2 可以看出,在 index.jsp 和 product.jsp 文件中,只有粗体字标 识的代码块不是重复代码,其余部分均为重复代码。如果网页的相同部分发生需求变更, 必须手工修改所有的 JSP 文件。可见,采用基本的 JSP 语句来编写上述网页,会导致 JSP 代码的大量冗余,增加开发与维护成本。 16.2 采用 JSP 的 include 指令创建复合式网页 为了减少代码的冗余,可以把 index.jsp 和 product.jsp 中的相同部分放在单独的 JSP 文 件中,然 后 在 index.jsp 和 product.jsp 文件中通过 JSP include 指令把其他 JSP 文件包含进来。 图 16-4 和图 16-5 分别显示了 index.jsp 和 product.jsp 文件包含的其他 JSP 文件。 本节介绍的 tilestaglibs 应用的源程序位于配套光盘的 sourcecode/ tilestaglibs/version2/ tilestaglibs 目录下。如果要在 Tomcat 上发布这个应用, 只要把 version2 目录下的整个 tilestaglibs 子目录复制到/webapps 目录下即可。 PDF 文件使用 "pdfFactory" 试用版本创建 www.fineprint.com.cn 精通 Struts:基于 MVC 的 Java Web 设计与开发 388 图 16-4 index.jsp 包含的其他 JSP 文件 图16-5 product.jsp 包含的其他 JSP 文件 如图 16-4 和图 16-5 所示,在 index.jsp 和 product.jsp 中均包含 header.jsp,sidebar.jsp 和 footer.jsp,只有网页主体部分包含的 JSP 文件不同。例程 16-3、16-4、16-5、16-6、16-7、 16-8 和 16-9 分别为 header.jsp,footer.jsp,sidebar.jsp,indexContent.jsp,productContent.jsp, index.jsp 和 product.jsp 的源代码。 例程 16-3 header.jsp Welcome to ABC Inc.
    例程 16-4 footer.jsp
    Thanks for stopping by! 例程 16-5 sidebar.jsp <%@ page contentType="text/html; charset=UTF-8" %> <%-- Sidebar top component --%> <%-- Sidebar bottom component --%>
    Links

    Home
    Products
    Hot Link1
    Hot Link2
    sidebar.jsp header.jsp footer.jsp productContent.jsp sidebar.jsp header.jsp footer.jsp indexContent.jsp PDF 文件使用 "pdfFactory" 试用版本创建 www.fineprint.com.cn 第 16 章 Tiles 框架 389 Hot Link3

    例程 16-6 indexContent.jsp Page-specific content goes here 例程 16-7 productContent.jsp Products

  • product1

  • product2

  • product3

  • 例程 16-8 index.jsp <%@ page contentType="text/html; charset=UTF-8" %> TilesTaglibs Sample <%-- One table lays out all of the content for this page --%> <%-- Sidebar section --%> <%-- Main content section --%>
    <%-- Header section --%> <%-- Content section --%> <%-- Footer section --%>
    PDF 文件使用 "pdfFactory" 试用版本创建 www.fineprint.com.cn 精通 Struts:基于 MVC 的 Java Web 设计与开发 390
    例程 16-9 product.jsp <%@ page contentType="text/html; charset=UTF-8" %> TilesTaglibs Sample <%-- One table lays out all of the content for this page --%> <%-- Sidebar section --%> <%-- Main content section --%>
    <%-- Header section --%> <%-- Content section --%> <%-- Footer section --%> PDF 文件使用 "pdfFactory" 试用版本创建 www.fineprint.com.cn 第 16 章 Tiles 框架 391
    采用 JSP include 指令来创建复合式页面,已经在提高代码可重用性方面迈出了正确的 一步。在 index.jsp 和 product.jsp 中包含的相同内容,被放在单独的 JSP 页面中。index.jsp 和 product.jsp 只需通过 JSP include 指令把这些相同的内容包含进来,这样提高了代码的可 重用性。但是 JSP include 指令不能完全避免代码冗余,例如,从例程 16-8 和例程 16-9 中 可以看出,index.jsp 和 product.jsp 中仍然存在许多重复代码,只有粗体字标识的代码块不 是重复代码。 此外,和 16.1 节介绍的方案相比,尽管第二种方案减少了重复代码,但 JSP 文件的数 量增加了,由原来的两个文件增加到 7 个文件,所以软件的复杂度也增加了。 16.3 采用标签创建复合式网页 Tiles 标签库的标签和 JSP include 指令具有相同的功能,也能把其他的 JSP 页面插入到当前页面中。例如,以下两条语句的作用是相同的: 标签的 page 属性指定被插入的 JSP 文件;flush 属性的可选值包括 true 和 false。当 flush 的属性值为 true 时,表示在执行插入操作之前,先调用当前页面的输出流的 flush()方法。 本节介绍的 tilestaglibs 应用的源程序位于配套光盘的 sourcecode/ tilestaglibs/version3/tilestaglibs 目录下。如果要在 Tomcat 上发布这个应用, 只要把 version3 目录下的整个 tilestaglibs 子目录拷贝到/webapps 目录下即可。 以下是在 tilestaglibs 应用中使用标签的步骤。 (1)安装 Tiles 标签库所需的文件。 在 Struts 的下载软件中包含了运行 Tiles 标签库所需的文件。如果在 Web 应用中使用 了 Tiles 标签库,以下文件必须位于 WEB-INF/lib 目录中: PDF 文件使用 "pdfFactory" 试用版本创建 www.fineprint.com.cn 精通 Struts:基于 MVC 的 Java Web 设计与开发 392 l struts.jar l commons-digester.jar l commons-beanutils.jar l commons-collections.jar l commons-logging.jar 此外,应该把 Tiles 标签库的定义文件 struts-tiles.tld 拷贝到 WEB-INF 目录下。 (2)在 web.xml 文件中配置如下元素: /WEB-INF/struts-tiles.tld /WEB-INF/struts-tiles.tld (3)创建 index.jsp 和 product.jsp 文件。 修改 16.2 节的例程 16-8(index.jsp)和例程 16-9(product.jsp),在 index.jsp 和 product.jsp 文件的开头,通过<%@ taglib>指令引入 Tiles 标签库,然后把源代码中的 JSP include 指令 改为标签。例程 16-10 和例程 16-11 分别为修改后的 index.jsp 和 product.jsp 文 件。 例程 16-10 index.jsp <%@ page contentType="text/html; charset=UTF-8" %> <%@ taglib uri="/WEB-INF/struts-tiles.tld" prefix="tiles" %> TilesTaglibs Sample <%-- One table lays out all of the content for this page --%> <%-- Sidebar section --%> <%-- Main content section --%>
    <%-- Header section --%> <%-- Content section --%> PDF 文件使用 "pdfFactory" 试用版本创建 www.fineprint.com.cn 第 16 章 Tiles 框架 393 <%-- Footer section --%>
    例程 16-11 product.jsp <%@ page contentType="text/html; charset=UTF-8" %> <%@ taglib uri="/WEB-INF/struts-tiles.tld" prefix="tiles" %> TilesTaglibs Sample <%-- One table lays out all of the content for this page --%> <%-- Sidebar section --%> <%-- Main content section --%>
    <%-- Header section --%> <%-- Content section --%> PDF 文件使用 "pdfFactory" 试用版本创建 www.fineprint.com.cn 精通 Struts:基于 MVC 的 Java Web 设计与开发 394 <%-- Footer section --%>
    从例程 16-10 和例程 16-11 中可以看出,用标签取代 JSP include 指令来创 建复合式页面,其代码只有细微的差别,两者的利弊也很相似。单纯使用标签 来创建复合式页面,还没有充分发挥 Tiles 框架的优势。 16.4 采用 Tiles 模板创建复合式网页 在 16.3 节中,尽管使用了标签,在 index.jsp 和 product.jsp 文件中还是存 在很多的重复代码。为了提高 Web 页面的可重用性和可维护性,可以引入 Tiles 的模板机 制。 本节介绍的 tilestaglibs 应用的源程序位于配套光盘的 sourcecode/ tilestaglibs/version4/tilestaglibs 目录下。如果要在 Tomcat 上发布这个应用, 只要把 version4 目录下的整个 tilestaglibs 子目录复制到/webapps 目录下即可。 通俗地讲,Tiles 模板是一种描述页面布局的 JSP 页面。Tiles 模板只定义了 Web 页面 的样式,而不指定内容。在 Web 应用运行时,才把特定内容插入到模板页面中。同一模板 可以被多个 Web 页面共用。 使用模板,可以轻松地实现 Web 应用的所有页面保持相同的外观和布局,而无需为每 个页面硬编码。在一个应用中,大多数页面使用同一个模板,某些页面可能需要不同的外 观,而使用其他的模板,因此一个应用可能有一个以上的模板。 以下是在 tilestaglibs 应用中使用 Tiles 模板的步骤。 (1)安装 Tiles 标签库所需的文件,同 16.3 节中提到的步骤(1)。 (2)在 web.xml 文件中配置元素,同 16.3 节中提到的步骤(2)。 (3)定义模板文件,参见例程 16-12。 PDF 文件使用 "pdfFactory" 试用版本创建 www.fineprint.com.cn 第 16 章 Tiles 框架 395 例程 16-12 layout.jsp <%@ page contentType="text/html; charset=UTF-8" %> <%@ taglib uri="/WEB-INF/struts-tiles.tld" prefix="tiles"%> TilesTaglibs Sample <%-- One table lays out all of the content --%> <%-- Sidebar section --%> <%-- Main content section --%>
    <%-- Header section --%> <%-- Content section --%> <%-- Footer section --%>
    在模板文件 layout.jsp 中定义了网页的布局,但没有指定各部分的具体内容。在 layout.jsp 中包含了多个标签,它的 attribute 属性仅仅指定了待插入内容的逻辑 PDF 文件使用 "pdfFactory" 试用版本创建 www.fineprint.com.cn 精通 Struts:基于 MVC 的 Java Web 设计与开发 396 名,而没有指定真正被插入的文件。 (4)在 index.jsp 和 product.jsp 中运用 Tiles 模板,请参见例程 16-13 和例程 16-14。 例程 16-13 index.jsp <%@ page contentType="text/html; charset=UTF-8" %> <%@ taglib uri="/WEB-INF/struts-tiles.tld" prefix="tiles" %> 例程 16-14 product.jsp <%@ page contentType="text/html; charset=UTF-8" %> <%@ taglib uri="/WEB-INF/struts-tiles.tld" prefix="tiles" %> 在 index.jsp 和 product.jsp 中,标签指定插入的模板文件,index.jsp 和 product.jsp 均使用相同的模板文件 layout.jsp。标签中包含了若干子标 签,它指定插入到模板中的具体内容。标签的 name 属性和模板文件中的 标签的 attribute 属性匹配,标签的 value 属性指定插入到模板中的具 体 JSP 文件。 采用 Tiles 模板机制,大大提高了代码的可重用性和可维护性,模板中包含了网页共同 的布局。如果布局发生变化,就只需要修改模板文件,而无需修改具体的网页文件。不过, 从例程 16-13 和 16-14 中可以看出,尽管 index.jsp 和 product.jsp 文件的长度都缩短了,但 是两者还是存在重复代码。 16.5 采用 Tiles 模板和 Tiles 组件创建复合式网页 为了最大程度地提高代码的可重用性和灵活性,Tiles 框架引入了 Tiles 组件的概念。 Tiles 组件可以代表一个完整的网页,也可以代表网页的一部分。简单的 Tiles 组件可以组 合成复杂的 Tiles 组件,或被扩展为复杂的 Tiles 组件。 PDF 文件使用 "pdfFactory" 试用版本创建 www.fineprint.com.cn 第 16 章 Tiles 框架 397 16.5.1 Tiles 组件的基本使用方法 Tiles 框架允许在专门的 XML 文件中配置 Tiles 组件。例如,以下代码定义了一个名为 “index-definition”的 Tiles 组件,它描述整个 index.jsp 网页: 元素的 name 属性指定 Tiles 组件的名字,path 属性指定 Tiles 组件使用的模 板,元素的子元素用于向模板中插入具体的网页内容。 本节介绍的 tilestaglibs 应用的源程序位于配套光盘的 sourcecode/ tilestaglibs/version5/tilestaglibs 目录下。如果要在 Tomcat 上发布这个应用, 只要把 version5 目录下的整个 tilestaglibs 子目录复制到/webapps 目录下即可。 以下是在 tilestaglibs 应用中使用 Tiles 组件的步骤。 (1)安装 Tiles 标签库所需的文件,同 16.3 节中提到的步骤(1)。 (2)在 web.xml 文件中配置元素,同 16.3 节中提到的步骤(2)。 (3)在专门的 XML 文件中配置 Tiles 组件, 在本例中把这个配置文件命名为 tiles-defs.xml,这个文件位于 WEB-INF 目录下。例程 16-15 为 tiles-defs.xml 文件的代码。 例程 16-15 tiles-defs.xml PDF 文件使用 "pdfFactory" 试用版本创建 www.fineprint.com.cn 精通 Struts:基于 MVC 的 Java Web 设计与开发 398 以上代码定义了两个 Tiles 组件,它们分别代表完整的 index.jsp 和 product.jsp 页面。 (4)在 Strut 配置文件中配置 TilesPlugin 插件,其代码如下: TilesPlugin 插件用于加载 Tiles 组件的配置文件。在 元素中包含几个 子元素,用于向 TilesPlugin 插件传入附加的参数: l definitions-config 参数:指定 Tiles 组件的配置文件,如果有多个配置文件,则它 们之间用逗号分隔。 l definitions-parser-validate 参数:指定 XML 解析器是否验证 Tiles 配置文件,可选 值包括 true 和 false,默认值为 true。 (5)在 web.xml 文件中配置 ActionServlet。 为了保证在 Web 应用启动时加载 TilesPlugin 插件,应该加入 ActionServlet 控制器, ActionServlet 控制器在初始化时能加载所有的插件。以下是在 web.xml 文件中配置 ActionServlet 的代码: action org.apache.struts.action.ActionServlet config /WEB-INF/struts-config.xml 3 action *.do (6)在 index.jsp 和 product.jsp 中插入 Tiles 组件,参见例程 16-16 和例程 16-17: PDF 文件使用 "pdfFactory" 试用版本创建 www.fineprint.com.cn 第 16 章 Tiles 框架 399 例程 16-16 index.jsp <%@ page contentType="text/html; charset=UTF-8" %> <%@ taglib uri="/WEB-INF/struts-tiles.tld" prefix="tiles" %> 例程 16-17 product.jsp <%@ page contentType="text/html; charset=UTF-8" %> <%@ taglib uri="/WEB-INF/struts-tiles.tld" prefix="tiles" %> 16.5.2 通过 Struts Action 来调用 Tiles 组件 如果 Tiles 组件代表完整的网页,那么可以直接通过 Struts Action 来调用 Tiles 组件。 例如,如果希望通过 Struts Action 来调用 16.5.1 小节定义的名为“index-definition”的 Tiles 组件,那么可以在 Struts 配置文件中配置如下 Action 映射: 接下来通过浏览器访问 http://localhost:8080/tilestaglibs/index.do,该请求先被转发到 ForwardAction,ForwardAction 再把请求转发给名为“index-definition”的 Tiles 组件,最后 在浏览器端,用户将看到和 index.jsp 相同的页面。 通过 Struts Action 来调用 Tiles 组件,可以充分发挥 Struts 框架负责流程控制的功能。 此外,还可以减少 JSP 文件的数目。例如,如果直接通过 Struts Action 来调用名为 “index-definition”的 Tiles 组件,就不必再创建 index.jsp 文件。 16.5.3 Tiles 组件的组合 Tiles 组件是一种可重用的组件,可以像搭积木一样,把简单的 Tiles 组件组装成复杂 的 Tiles 组件。例如,可以把名为“index-definition”的 Tiles 组件的左边部分拆分为独立的 Tiles 组件,名为“sidebar-definition”,如图 16-6 所示。 本节介绍的 tilestaglibs 应用的源程序位于配套光盘的 sourcecode/ tilestaglibs/version6/tilestaglibs 目录下。如果要在 Tomcat 上发布这个应用, 只要把 version6 目录下的整个 tilestaglibs 子目录复制到/webapps 目录下即可。 PDF 文件使用 "pdfFactory" 试用版本创建 www.fineprint.com.cn 精通 Struts:基于 MVC 的 Java Web 设计与开发 400 图 16-6 把名为“index-definition”的 Tiles 组件的左边部分拆分为独立的 Tiles 组件 以下是在 tilestaglibs 应用中使用组合式 Tiles 组件的步骤。 (1)在 tiles-def.xml 文件中重新定义“sidebar-definition”,“index-definition”和“product- definition”这三个 Tiles 组件。在一个 Tiles 组件中包含另一个 Tiles 组件的语法为: …… 以上子元素的 value 属性指定被包含的 Tiles 组件的名字,type 属性设置为 “definition”,表示value属性指定的是Tiles组件,而不是JSP文件。例程 16-18 是 tiles-def.xml 文件的代码。 例程 16-18 tiles-def.xml sidebar-definition 模板文件:sidebar-layout.jsp index-definition 模板文件:layout.jsp flags.jsp sidebar-links.jsp header.jsp indexContent.jsp footer.jsp PDF 文件使用 "pdfFactory" 试用版本创建 www.fineprint.com.cn 第 16 章 Tiles 框架 401 (2)创建名为“sidebar-definition”的 Tiles 组件的相关 JSP 文件。 名为“sidebar-definition”的 Tiles 组件的模板文件为 sidebar-layout.jsp,被插入到这个 模板中的两个 JSP 文件分别为 flags.jsp 和 sidebar-links.jsp。例程 16-19、16-20 和 16-21 分 别为这几个 JSP 文件的源代码。 例程 16-19 sidebar-layout.jsp <%@ page contentType="text/html; charset=UTF-8" %> <%@ taglib uri="/WEB-INF/struts-tiles.tld" prefix="tiles"%> <%-- Sidebar top component --%> <%-- Sidebar bottom component --%>
    例程 16-20 sidebar-links.jsp <%-- Sidebar bottom component --%>
    Links

    Home
    Products
    Hot Link1
    PDF 文件使用 "pdfFactory" 试用版本创建 www.fineprint.com.cn 精通 Struts:基于 MVC 的 Java Web 设计与开发 402 Hot Link2
    Hot Link3

    例程 16-21 flags.jsp <%-- Sidebar top component --%> 16.5.4 Tiles 组件的扩展 在 16.5.3 小节的 tiles-def.xml 文件中,“index-definition”和“product-definition”两个 Tiles 组件的定义中仍然存在重复代码。可以利用 Tiles 组件的可扩展特性来进一步消除冗 余代码。解决方法为先定义一个包含这两个 Tiles 组件的共同内容的父类 Tiles 组件,命名 为“base-definition”,然后再让“index-definition”和“product-definition”这两个 Tiles 组 件继承这个父类组件。如图 16-7 所示为改进后的 Tiles 组件的关系。 图 16-7 改进后的 Tiles 组件的关系 本节介绍的 tilestaglibs 应用的源程序位于配套光盘的 sourcecode/ tilestaglibs/version7/tilestaglibs 目录下。如果要在 Tomcat 上发布这个应用, 只要把 version7 目录下的整个 tilestaglibs 子目录复制到/webapps 目录下即可。 一个 Tiles 组件继承另一个 Tiles 组件的语法如下,其中元素的 extends 属性 指定被扩展的父类 Tiles 组件: 例程 16-22 为改进后的 tiles-def.xml 的代码。 包含 sidebar-definition base-definition index-defintion product-definition 继承 PDF 文件使用 "pdfFactory" 试用版本创建 www.fineprint.com.cn 第 16 章 Tiles 框架 403 例程 16-22 tiles-def.xml 16.6 小 结 传统的GUI 工具包,如 Java AWT 和 Java Swing,都提供了一些功能强大的布局管理 器,它们指定各个视图组件在窗口中的分布位置。布局管理器有助于创建复合式的复杂界 面,一个复合式界面由一些简单的基本界面组成。利用布局管理器来创建 GUI 界面有以下 优点: l 可重用性:基本界面可以被重用,组合成各种不同的复合式界面。 l 可扩展性:可以方便地扩展基本界面,从而创建更复杂的界面。 l 可维护性:每个基本界面之间相互独立,当复合式界面中的局部区域发生变化时, 不会影响到其他区域。 不幸的是,JSP 技术本身并没有直接提供布局或布局管理器。为了简化 Web 页面的开 发,提高可重用性和可扩展性,Struts Tiles 框架提供了一种模板机制,模板定义了网页的 布局,同一模板可以被多个 Web 页面共用。此外,Tiles 框架还允许定义可重用的 Tiles 组 件,它可以描述一个完整的网页,也可以描述网页的局部内容。简单的 Tiles 组件可以被组 合或扩展成为更复杂的 Tiles 组件。 本章由浅入深地介绍了创建复合式 Web 页面的几种方案。与采用基本的 JSP 语言来创 PDF 文件使用 "pdfFactory" 试用版本创建 www.fineprint.com.cn 精通 Struts:基于 MVC 的 Java Web 设计与开发 404 建 Web 页面相比,Tiles 框架大大提高了视图层程序代码的可重用性、可扩展性和可维护性。 不过,使用 Tiles 框架也增加了开发视图的难度和复杂度。如果 Web 应用规模很小,界面 非常简单,不妨直接采用基本的 JSP 语言来编写网页。对于大型复杂的 Web 应用,可以充 分运用 Tiles 框架的优势,从整体上提高网页开发的效率。 PDF 文件使用 "pdfFactory" 试用版本创建 www.fineprint.com.cn
    还剩21页未读

    继续阅读

    下载pdf到电脑,查找使用更方便

    pdf的实际排版效果,会与网站的显示效果略有不同!!

    需要 15 金币 [ 分享pdf获得金币 ] 4 人已下载

    下载pdf

    pdf贡献者

    lfm

    贡献于2011-06-06

    下载需要 15 金币 [金币充值 ]
    亲,您也可以通过 分享原创pdf 来获得金币奖励!
    下载pdf