zoukankan      html  css  js  c++  java
  • Spring中整合Titles

     在《Spriing实战(第三版)》这本书中,有一个使用titles的例子,但是这是一个不完整的例子。那么要参照起来就比较难了,于是找到了下面这篇博客。

    在Spring中使用tiles2 (因为是英文的,同时又是比较简单的英文,那么就翻译一下,当作学习)

    在这个例子中,你将学会怎样整合Spring和Tiles2.这个例子的目录结构如下:

    添加下面的库文件到库目录,(当然如果是在Eclipse中就是对应的lib文件夹了)。

    01.antlr-runtime-3.0
    02.commons-logging-1.0.4
    03.org.springframework.asm-3.0.0.M3
    04.org.springframework.beans-3.0.0.M3
    05.org.springframework.context-3.0.0.M3
    06.org.springframework.context.support-3.0.0.M3
    07.org.springframework.core-3.0.0.M3
    08.org.springframework.expression-3.0.0.M3
    09.org.springframework.web-3.0.0.M3
    10.org.springframework.web.servlet-3.0.0.M3
    11.
    12.commons-beanutils-1.7.0
    13.commons-digester-1.8
    14.commons-logging-api-1.1
    15.jstl
    16.standard
    17.tiles-api-2.0.4
    18.tiles-core-2.0.4
    19.tiles-jsp-2.0.4
    你将会看到如何创建一个有头部,目录和主体部分的简单典型的Tiles布局。
    在Spring中使用Tiles,在Spring的配置文件中配置下面Tile的定义。
    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns:p="http://www.springframework.org/schema/p"
        xmlns:context="http://www.springframework.org/schema/context"
        xsi:schemaLocation="
        http://www.springframework.org/schema/beans 
        http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context 
        http://www.springframework.org/schema/context/spring-context.xsd">
         
        <bean id="viewResolver" class="org.springframework.web.servlet.view. ResourceBundleViewResolver" p:basename="views" />
         
        <context:component-scan base-package="com.vaannila.web" />
       
        <bean id="tilesConfigurer" class="org.springframework.web.servlet.view.tiles2. TilesConfigurer" p:definitions="/WEB-INF/tiles-defs.xml" />    
             
    </beans>
     使用definitions属性指定Tiles定义文件的位子,这里这个位置是“/WEB-INF/tiles-defs.xml"。Tiles定义文件展示如下:
    <?xml version="1.0" encoding="UTF-8" ?>
     
    <!DOCTYPE tiles-definitions PUBLIC
          "-//Apache Software Foundation//DTD Tiles Configuration 2.0//EN"
           "http://tiles.apache.org/dtds/tiles-config_2_0.dtd">
     
    <tiles-definitions>
     
      <definition name="baseLayout" template="/WEB-INF/tiles/baseLayout.jsp">
          <put-attribute name="title"  value="Template"/>
          <put-attribute name="header" value="/WEB-INF/tiles/header.jsp"/>
          <put-attribute name="menu"   value="/WEB-INF/tiles/menu.jsp"/>
          <put-attribute name="body"   value="/WEB-INF/tiles/body.jsp"/>
          <put-attribute name="footer"   value="/WEB-INF/tiles/footer.jsp"/>
      </definition>
       
      <definition name="welcome" extends="baseLayout">
          <put-attribute name="title"  value="Welcome"/>
          <put-attribute name="body"   value="/WEB-INF/jsp/welcome.jsp"/>      
      </definition>
    
      <definition name="friends" extends="baseLayout">
          <put-attribute name="title"  value="Friends"/>
          <put-attribute name="body"   value="/WEB-INF/jsp/friends.jsp"/>      
      </definition>
       
      <definition name="office" extends="baseLayout">
          <put-attribute name="title"  value="Office"/>
          <put-attribute name="body"   value="/WEB-INF/jsp/office.jsp"/>      
      </definition>
       
    </tiles-definitions>
     这里我们首先定义了基本的布局,以后我们将扩展这个基本的布局并且将通过仅仅改变标题和主体部分创建更多tiles。
     
    为了显示视图我们使用ResourceBundleViewResolver。通过定义存储了一对关键值的views.properties文件,我们使用了的基本名属性指定这些。
    welcome.(class)=org.springframework.web.servlet.view.tiles2.TilesView
    welcome.url=welcome
    
    friends.(class)=org.springframework.web.servlet.view.tiles2.TilesView
    friends.url=friends
    
    office.(class)=org.springframework.web.servlet.view.tiles2.TilesView
    office.url=office
     
    about.(class)=org.springframework.web.servlet.view.JstlView
    about.url=/WEB-INF/jsp/about.jsp

     welcome, friends 和 office 引用tile 定义的名字 (the one to right side of the = sign)。我们使用 "org.springframework.web.servlet.view.tiles2. TilesView" 类展示tile.你也可以一起使用其他的TilesView。相关的url通过org.springframework.web.servlet.view.JstlView被映射到相关的jsp页面。

    baseLayout.jsp文件包含了拥有不同区域的的表结构。

    <%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles" %>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
    
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title><tiles:insertAttribute name="title" ignore="true" /></title>
    </head>
    <body>
    <table border="1" cellpadding="2" cellspacing="2" align="center">
    <tr>
    <td height="30" colspan="2">
    <tiles:insertAttribute name="header" />
    </td>
    </tr>
    <tr>
    <td height="250">
    <tiles:insertAttribute name="menu" />
    </td>
    <td width="350">
    <tiles:insertAttribute name="body" />
    </td>
    </tr>
    <tr>
    <td height="30" colspan="2">
    <tiles:insertAttribute name="footer" />
    </td>
    </tr>
    </table>
    </body>
    </html>

     这里我们使用注解controller处理映射去处理请求。在在redirect.jsp页面我们只是请求welcome.htm。

    <% response.sendRedirect("welcome.htm"); %>

    我们向前到 welcome.htm的url将通过WelcomeController类处理。

    package com.vaannila.web;
    
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    
    @Controller
    public class WelcomeController {
    
    @RequestMapping("/welcome.htm")
    public String redirect()
    {
    return "welcome";
    }
    }
    

    运行时显示的界面如下:


  • 相关阅读:
    zoj 3279 线段树 OR 树状数组
    fzu 1962 树状数组 OR 线段树
    hdu 5057 块状链表
    hdu3487 Play with Chain
    bzoj 1588营业额统计(HNOI 2002)
    poj2823 Sliding Window
    poj2828 Buy Tickets
    poj2395 Out of Hay
    poj3667 Hotel
    poj1703 Lost Cows
  • 原文地址:https://www.cnblogs.com/sand-tiny/p/3884919.html
Copyright © 2011-2022 走看看