当使用Spring Boot时,整合JSP和Tiles模板是非常简单的。下面是整合的完整攻略:
步骤1: 新建Spring Boot项目
首先,你需要创建一个新的Spring Boot项目。你可以在Spring Boot官网中创建一个新项目或者在Eclipse、IntelliJ IDEA等IDE中创建一个新的Spring Boot项目。
步骤2:配置pom.xml文件
在pom.xml文件中添加以下依赖:
<dependency>
<groupId>org.apache.tiles</groupId>
<artifactId>tiles-jsp</artifactId>
<version>3.0.8</version>
</dependency>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<scope>provided</scope>
</dependency>
这些依赖将Tiles和JSP引擎(Apache Tomcat)添加到项目中。
步骤3:创建配置类
在Spring Boot应用程序中,我们可以使用Java配置类来替代XML配置文件。因此,我们需要创建一个配置类来配置Tiles。
创建一个TilesConfig
文件,将以下内容添加到文件中:
@Configuration
public class TilesConfig {
@Bean
public TilesConfigurer tilesConfigurer() {
TilesConfigurer configurer = new TilesConfigurer();
configurer.setDefinitions("/WEB-INF/tiles.xml");
configurer.setCheckRefresh(true);
return configurer;
}
@Bean
public ViewResolver tilesViewResolver() {
TilesViewResolver resolver = new TilesViewResolver();
return resolver;
}
}
这个配置文件将TilesConfigurer和TilesViewResolver添加到Spring上下文中。
步骤4:创建tiles.xml文件
接下来,我们需要在项目的src/main/webapp/WEB-INF文件夹中创建tiles.xml文件。以下是一个简单的tiles.xml文件的示例:
<?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="base.definition" template="/WEB-INF/views/layout.jsp">
<put-attribute name="title" value="Spring Boot Tiles" />
<put-attribute name="header" value="/WEB-INF/views/header.jsp" />
<put-attribute name="body" value="" />
<put-attribute name="footer" value="/WEB-INF/views/footer.jsp" />
</definition>
<definition name="example.tiles.view" extends="base.definition">
<put-attribute name="body" value="/WEB-INF/views/example.jsp" />
</definition>
</tiles-definitions>
这个文件定义了两个不同的tiles,其中example.tiles.view扩展了base.definition,并将example.jsp添加为body属性。
步骤5:创建JSP文件
最后,在项目中创建JSP文件。例如,我们可以在src/main/webapp/WEB-INF/views目录下创建一个example.jsp文件,它显示一个简单的信息:
<html>
<head>
<title>Spring Boot Tiles Example</title>
</head>
<body>
<h1>Hello, Tiles!</h1>
</body>
</html>
示例1:使用Tiles定义页面布局
在上面的示例中,我们创建了一个tiles.xml文件,定义了页面布局的各个部分,然后我们可以在JSP文件中使用这些部分来构建页面。
例如,在example.jsp文件中添加以下内容:
<%@ taglib prefix="tiles" uri="http://tiles.apache.org/tags-tiles" %>
<tiles:insertDefinition name="example.tiles.view">
<tiles:putAttribute name="body">
<h1>Welcome to the Example Page</h1>
<p>This is an example of using Tiles with Spring Boot.</p>
</tiles:putAttribute>
</tiles:insertDefinition>
在这个示例中,我们使用<tiles:insertDefinition>
和<tiles:putAttribute>
标签将包含h1和p标签的内容添加到example.tiles.view的body属性中。
运行应用程序并访问http://localhost:8080/,将会看到如下页面:
Spring Boot Tiles
--------------------------------------------
| Header |
--------------------------------------------
| Welcome to the Example Page |
| This is an example of using Tiles |
| with Spring Boot. |
--------------------------------------------
| Footer |
--------------------------------------------
这里的Header和Footer是在tiles.xml文件中定义的。
示例2:使用JSP模板继承实现页面布局
另一个常见的方法是使用JSP模板继承(或JSP标记库)来定义页面布局的不同部分。
例如,在layout.jsp文件中添加以下内容:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
<title><tiles:getAsString name="title" /></title>
</head>
<body>
<header>
<jsp:include page="<tiles:getAsString name='header' />"/>
</header>
<div class="container">
<div class="row">
<div class="col-md-12">
<main>
<tiles:insertAttribute name="body" />
</main>
</div>
</div>
</div>
<footer>
<jsp:include page="<tiles:getAsString name='footer' />"/>
</footer>
</body>
</html>
在这个示例中,我们定义了一个基本的HTML页面,使用Tiles定义的title、header和footer属性来填充页面。我们还包含了<tiles:insertAttribute>
标记,它将在子页面(例如example.jsp)中填充具体内容。
然后我们创建一个新的example.jsp文件,继承layout.jsp文件中的内容:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="tiles" uri="http://tiles.apache.org/tags-tiles"%>
<tiles:insertDefinition name="base.definition">
<tiles:putAttribute name="body">
<h1>Welcome to the Example Page</h1>
<p>This is an example of using Tiles with Spring Boot.</p>
</tiles:putAttribute>
</tiles:insertDefinition>
这里我们使用<tiles:insertDefinition>
来在base.definition的基础上定义一个新的tiles。
运行应用程序并访问http://localhost:8080/,将会看到如下页面:
Welcome to the Example Page
This is an example of using Tiles with Spring Boot.
--------------------------------------------
| Header |
--------------------------------------------
| |
--------------------------------------------
| |
| |
|Welcome to the Example Page |
|This is an example of using Tiles with |
|Spring Boot. |
| |
| |
| |
--------------------------------------------
| Footer |
--------------------------------------------
这里的Header和Footer是在layout.jsp文件中定义的。example.jsp中<tiles:insertDefinition>
标签中的内容被放置在主体中。
这就是整合JSP和Tiles模板的完整攻略。在示例1中,我们使用Tiles定义了页面布局。在示例2中,我们使用JSP模板继承实现页面布局。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Spring boot整合jsp和tiles模板示例 - Python技术站