zoukankan      html  css  js  c++  java
  • springMVC框架集成tiles模板

    将tiles模板集成到springMVC框架下,大概流程如下:

    1.在配置文件中加入tiles支持

    我的servlet配置文件名为spring-mvc.xml.具体配置如下:

    <?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:mvc="http://www.springframework.org/schema/mvc"
        xmlns:context="http://www.springframework.org/schema/context"
        xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.1.xsd
            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-4.1.xsd">
    
        <!-- 激活@controller模式 -->
        <mvc:annotation-driven />
        <!-- 配置包扫描位置 -->
        <context:component-scan base-package="com.test.maven.controller" />
        <!-- 配置视图解析器(jsp文件前缀后缀) -->
        <bean id="viewResolver"
            class="org.springframework.web.servlet.view.InternalResourceViewResolver">
            <property name="prefix">
                <value>/WEB-INF/jsp/</value>
            </property>
            <property name="suffix">
                <value>.jsp</value>
            </property>
        </bean>
        <!-- 配置tiles模板 -->
        <bean id="tilesConfigurer"
            class="org.springframework.web.servlet.view.tiles3.TilesConfigurer">
            <property name="definitions">
                <list>
                    <value>/WEB-INF/tiles/tiles-definitions.xml</value>
                </list>
            </property>
    
        </bean>
    
    </beans>

    很简单,只是添加了模板配置文件路径。

    2.配置tiles模板

    我们需要给tiles添加一个默认的模板,将一些想要加入的模块加入进去

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE tiles-definitions PUBLIC
           "-//Apache Software Foundation//DTD Tiles Configuration 3.0//EN"
           "http://tiles.apache.org/dtds/tiles-config_3_0.dtd">
    <tiles-definitions>
      <definition name="defaultTemplate" template="/WEB-INF/tiles/classic.jsp">
        <put-attribute name="title" value="Hello world I'm title" />
        <put-attribute name="menu" value="/WEB-INF/tiles/menu.jsp"/>
        <put-attribute name="footer" value="/WEB-INF/tiles/footer.jsp" />
      </definition>
    </tiles-definitions>

    defaultTemplate就是默认模板的名字,template就是模板的路径

    put-attribute表示加入模板的模块,value指向其路径

    还可以再加入新的模板,如过想要继承某个模板,可以在definition处去掉template,添加extends(没试过)

    注:在配置模板文件和调用模板时,都应该在文件头声明tiles标签库

    模块文件就不赘述了,这里说一下模板文件,classic.jsp:

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <%@ 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>
    <title><tiles:getAsString name="title" /></title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    </head>
    <body>
        <div class="page">
            <tiles:insertAttribute name="menu" />
            <div class="content">
                <tiles:insertAttribute name="body" />
            </div>
            <tiles:insertAttribute name="footer" />
        </div>
    </body>
    </html>

    上边的body元素是模板没有的,就是所谓的正文内容,因为一般情况下每次调用body内的元素都不一样,所以无需在模板内指定,在模板文件中指明其位置,然后在调用的时候向里边填入内容就好了。

    3.调用tiles模板

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <%@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">
    <body>
    <tiles:insertDefinition name="defaultTemplate">
        <tiles:putAttribute name="body">hahahaha</tiles:putAttribute>
        <tiles:putAttribute name="footer">hello</tiles:putAttribute>
    </tiles:insertDefinition>
    </body>

    调用模板,首先是使用defaultTemplate模板,然后配置模板内的组件,若都使用默认,可以直接为空,如果重写了其中的组件,则会将原模板内的配置覆盖。但是如果是后加的组件,如上边的body,并没有默认的组件,则在调用时必须重写其内容。

    到此,最简单的tiles配置就结束了。

    insertDefinition
  • 相关阅读:
    打包下载,byte[] ,
    .net mvc 异常处理 IExceptionFilter,保存请求参数
    c# webapi websocket 服务端消息发送
    mailkit用163发邮件
    使用OPCAutomation实现对OPC数据的访问,“对 COM 组件的调用返回了错误 HRESULT E_FAIL”错误
    .net core 获取客户端ip
    C#读取OPC server
    Makedown语言常用语法
    ops:Rsync和Scp区别
    ops:Linux /bin,/sbin,/usr/sbin, /usr/local/bin区别
  • 原文地址:https://www.cnblogs.com/tobeprogramer/p/4163938.html
Copyright © 2011-2022 走看看