springmvc整合Apache tiles基于java配置的demo

springmvc整合apache tiles

springmvc整合Apache tiles,虽然是个很简单的东西,但是由于自己太菜,用了好久。
首先是项目的构建,用的是gradle,项目构建主要的问题项目依赖用到了slf4j,个人感觉这个包依赖比较奇怪,版本稍微不对就会出问题,因为比较懒,直接用以前的项目依赖配置,然后新加进这个包的时候就各种问题,看着依赖树眼镜都快花了,最后总算弄好了。
代码资源地址:http://download.csdn.net/download/qq_36666651/10139135
https://github.com/wkcaeser/SpringApacheTiles
以下是我的gradle依赖配置,有些事不必要的,主要看下面那几个包:

group 'SpringApacheTiles'
version '1.0-SNAPSHOT'

apply plugin: 'java'
apply plugin: 'war'

sourceCompatibility = 1.8

def tomcatVersion = "9.0.0.M21"
def jstlVersion = "1.2"
def springVersion = "4.3.8.RELEASE"
def mybatisVersion = "3.4.4"
def mybatisSpringVersion = "1.3.1"
def mysqlConnectorVersion = "6.0.6"
def dbcpVersion = "2.1.1"
def log4jVersion = "2.10.0"
def gsonVersion = "2.8.1"
def jjwtVersion = "0.7.0"
def fileupload = "1.3.3"
def commonsIo = "2.5"

repositories {
    mavenCentral()
}

dependencies {
    testCompile group: 'junit', name: 'junit', version: '4.11'

    compile "org.apache.tomcat:tomcat-servlet-api:$tomcatVersion"
    compile "org.apache.tomcat:tomcat-jsp-api:$tomcatVersion"
    compile "javax.servlet:jstl:$jstlVersion"
    compile "org.springframework:spring-webmvc:$springVersion"
    compile "org.springframework:spring-jdbc:$springVersion"
    compile "org.mybatis:mybatis:$mybatisVersion"
    compile "org.mybatis:mybatis-spring:$mybatisSpringVersion"
    compile "mysql:mysql-connector-java:$mysqlConnectorVersion"
    compile "org.apache.commons:commons-dbcp2:$dbcpVersion"
    compile "org.apache.logging.log4j:log4j-core:$log4jVersion"
    compile "com.google.code.gson:gson:$gsonVersion"
    compile "io.jsonwebtoken:jjwt:$jjwtVersion"
    compile "commons-io:commons-io:$commonsIo"
    compile "commons-fileupload:commons-fileupload:$fileupload"

    // https://mvnrepository.com/artifact/log4j/log4j
    compile group: 'log4j', name: 'log4j', version: '1.2.14'

    compile "org.apache.tiles:tiles-core:3.0.1"
    compile "org.apache.tiles:tiles-api:3.0.1"
    compile "org.apache.tiles:tiles-jsp:3.0.1"

    // https://mvnrepository.com/artifact/org.slf4j/slf4j-api
    compile group: 'org.slf4j', name: 'slf4j-api', version: '1.5.8'
    // https://mvnrepository.com/artifact/org.slf4j/slf4j-log4j12
    compile group: 'org.slf4j', name: 'slf4j-log4j12', version: '1.5.8'


}

依赖好了以后配置相关的bean,首先配置TilesConfigurer来解析Tile定义,代码如下:

@Bean
    public TilesConfigurer tilesConfigurer(){
        TilesConfigurer tilesConfigurer = new TilesConfigurer();
        tilesConfigurer.setDefinitions("/WEB-INF/views/apacheTiles/tiles.xml");
        tilesConfigurer.setCheckRefresh(true);
        return tilesConfigurer;
    }

注意这个配置文件的位置要和jsp所在的位置在一个根目录下,例如jsp在webapp目录下,那么这个文件也要在此目录。如果在resources目录下,同样的也只查询到此目录下的文件。

然后配置TilesViewResolver,代码如下:

@Bean
    public ViewResolver viewResolver(){
        return new TilesViewResolver();
    }

这里需要注意的是,如果你还配置InternalResourceViewResolver视图解析器,那么这里就需要指定优先级,不然在视图解析的时候回出错。

然后就配置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="tiles" template="/WEB-INF/views/tiles.jsp">
        <put-attribute name="header" value="/WEB-INF/views/header.jsp"/>
        <put-attribute name="base" value="/WEB-INF/views/welcome.jsp"/>
        <put-attribute name="footer" value="/WEB-INF/views/footer.jsp"/>
    </definition>
</tiles-definitions>

这只是一个简单的例子,definition是可以继承的,将template改为extens,值改为对应tiles模板的名称就可以定制你自己的模板,模板里面添加的attribute可以继承也可以覆盖,不处理就是继承,同名会覆盖。

然后在jsp页面引入就可以了:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="t"%>
<html>
<head>
    <title>Title</title>
</head>
<body>
    <div>
        <t:insertAttribute name="header"/>
    </div>
    <div>
        <t:insertAttribute name="base"/>
    </div>
    <div>
        <t:insertAttribute name="footer"/>
    </div>
</body>
</html>

jsp要注意引入相应的文档定义:

<%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="t"%>

这样springmvc和apache tiles的整合就完成了。
这里写图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值