• Tiles介绍


    问题: 
          Web产品开发中大家会面临着同一个问题----页面中大部分都是固定不变的,变化的只有内容部分,也可以说每个产品都有一定的风格或者是使用了几类模板。 遇到了问题就要想办法解决!相信大家也想找一个方法,提高Web代码的复用性和可维护性。下面介绍一下我们的解决方案。 

    解决方案: 
            Apache Tiles 框架来创建可重用的表示组件 ,可以划分表示层以更好地重用布局。 

            最早的Tiles是组装在Struts1.1里面的,主要目的是为了将复数的jsp页面作为一个的页面的部分机能,然后用来组合成一个最终表示用页面用的,这样的话,便于对页面的各个机能的变更及维护。 Tiles使得struts在页面的处理方面多了一种选择。并且更容易实现代码的重用。  (百度百科) 

    相关内容(具体查看ppt): 
    • Tile
    • Template
    • Attribute
    • Definition
    • Nesting and Extending Definitions
    • List Attributes
    • Wildcard support
    • View Preparers
    • Others


    使用方法(具体代码可参考附件中tiles-demo): 

    开发工具、插件、开源软件 
    Eclipse 、Maven、M2Eclipse、JDK1.6(必须1.5or以上)、Tiles2.2、Spring、SpringMVC、slf4j、jstl、jetty 

    首先新建maven项目,网上有很多介绍,这里省略。 

    在POM中添加必要的jar依赖,包括Tiles2.2、Spring、slf4j、jstl和servlet(因为用jetty)。具体可以参考下面的附件。 

    集成spring和springmvc,省略(原因同上,网上介绍的太多啦)。 

    添加Tiles配置文件,默认在WEB-INF下,格式比较简单。 

    1)定义模板页面 

    Html代码  收藏代码
    1. <%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles"%>  
    2. <html>  
    3. <head>  
    4. <title><tiles:getAsString name="title" /></title>  
    5. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  
    6. </head>  
    7. <body>  
    8. <table style="margin: auto; border: 1px; border-style: solid; border-color: #ccc;  900px;">  
    9. <tr style="height: 100px; background-color: #555;">  
    10.     <td colspan="2">  
    11.         <tiles:getAsString name="head" />  
    12.     </td>  
    13. </tr>  
    14. <tr>  
    15.     <td style=" 200px; height: 500px; background-color: #666;">  
    16.         <tiles:getAsString name="menu" />  
    17.     </td>  
    18.     <td>  
    19.         <tiles:insertAttribute name="content"></tiles:insertAttribute>  
    20.     </td>  
    21. </tr>  
    22. <tr style="height: 50px; background-color: #333;">  
    23.     <td colspan="2">  
    24.         <tiles:getAsString name="footer" />  
    25.     </td>  
    26. </tr>  
    27. </table>  
    28. </body>  
    29. </html>  

       
    2)在 tiles.xml 中定义和配置模板 

    Xml代码  收藏代码
    1. <?xml version="1.0" encoding="UTF-8"?>  
    2. <!DOCTYPE tiles-definitions PUBLIC  
    3.        "-//Apache Software Foundation//DTD Tiles Configuration 2.1//EN"  
    4.        "http://tiles.apache.org/dtds/tiles-config_2_1.dtd">  
    5. <tiles-definitions>  
    6.   
    7.     <definition name="base" template="/WEB-INF/pages/string/layout.jsp" >  
    8.         <put-attribute name="title" value="hello tiles"></put-attribute>  
    9.         <put-attribute name="head" value="head"></put-attribute>  
    10.         <put-attribute name="menu" value="menu"></put-attribute>  
    11.         <put-attribute name="footer" value="footer"></put-attribute>  
    12.     </definition>  
    13.   
    14. </tiles-definitions>  



    3)集成Spring 
    将springmvc与tiles集成,主要是是在mvc-servlet中添加配置,如下: 
    指定tiles配置文件位置(代码如下) 
    Xml代码  收藏代码
    1. <bean id="tilesConfigurer" class="org.springframework.web.servlet.view.tiles2.TilesConfigurer">  
    2.         <property name="definitions">  
    3.             <list>  
    4.                 <value>/WEB-INF/tiles.xml</value>  
    5.             </list>  
    6.         </property>  
    7.     </bean>  


    配置tiles视图解析(代码如下) 

    Xml代码  收藏代码
    1. <bean id="viewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver">  
    2.     <property name="viewClass">  
    3.         <value>  
    4.             org.springframework.web.servlet.view.tiles2.TilesView  
    5.         </value>  
    6.     </property>  
    7. </bean>  
    8.   
    9. <bean id="tilesResolver" class="org.springframework.web.servlet.view.tiles2.TilesViewResolver">  
    10.     <property name="viewClass" value="org.springframework.web.servlet.view.tiles2.TilesView" />  
    11.     <property name="order" value="1" />  
    12.     <property name="viewNames">  
    13.         <list>  
    14.             <value>*</value>  
    15.         </list>  
    16.     </property>  
    17. </bean>  


    配置jstl视图解析(代码如下) 
    Xml代码  收藏代码
    1. <bean id="filenameController" class="org.springframework.web.servlet.mvc.UrlFilenameViewController" />  
    2.       
    3. <bean id="jstlViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">  
    4.     <property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />  
    5.     <property name="prefix" value="/WEB-INF/pages/" />  
    6.     <property name="suffix" value=".jsp" />  
    7.     <property name="order" value="2" />  
    8. </bean>  


    完成以上步骤基本就可以了 

    参考资料: 
    http://tiles.apache.org/2.2/framework/tutorial/index.html 

    Warning! Tiles users that use Tiles 2.1.1 or 2.1.0 version should not install it in a production environment, due to a discovered security problem. Upgrade Tiles. 
    Tiles 2.0.x is not involved in this security bug. 

    Tiles Runtime Environment 
    a Java Runtime Environment following the Java SE 5.0 specifications; 
    a servlet container that supports Servlet 2.4 (or above) and JSP 2.0 (or above).
  • 相关阅读:
    课堂作业02
    模仿JavaAppArguments.java示例,编写一个程序,此程序从命令行接收多个数字,求和之后输出结果。
    Feign使用Hystrix无效原因及解决方法
    解决Spring Boot 使用RedisTemplate 存储键值出现乱码 xacxedx00x05tx00
    consul怎么在windows下安装
    java运行jar命令提示没有主清单属性
    Maven parent.relativePath
    Maven的pom.xml文件结构之基本配置packaging和多模块聚合结构(微服务)
    redis开启远程访问
    kibana使用
  • 原文地址:https://www.cnblogs.com/t0404/p/10291037.html
Copyright © 2020-2023  润新知