下面是Spring Boot中配置JSP和Tiles的整个过程及两个示例展示。
1. 引入JSP和Tiles依赖
首先,在pom.xml
中添加JSP和Tiles的依赖:
<!--JSP依赖-->
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<scope>provided</scope>
</dependency>
<!--Tiles依赖-->
<dependency>
<groupId>org.apache.tiles</groupId>
<artifactId>tiles-jsp</artifactId>
<version>3.0.8</version>
</dependency>
tomcat-embed-jasper
依赖提供了JSP的支持,tiles-jsp
依赖提供了Tiles的支持。
2. 配置JSP
接下来,在application.properties
文件中添加以下配置:
# JSP配置
spring.mvc.view.prefix: /WEB-INF/jsp/
spring.mvc.view.suffix: .jsp
这里设置了JSP文件的默认路径为/WEB-INF/jsp/
,文件后缀为.jsp
。
3. 配置Tiles
在application.properties
文件中添加以下配置:
# Tiles配置
tiles.definition.directory: /WEB-INF/tiles
tiles.definition.suffix: .tiles.xml
这里设置Tiles定义文件的默认路径为/WEB-INF/tiles
,文件后缀为.tiles.xml
。
在项目的/WEB-INF
目录下,创建一个tiles.xml
文件,配置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="base" template="/WEB-INF/jsp/layout.jsp">
<put-attribute name="title" value=""/>
<put-attribute name="header" value="/WEB-INF/jsp/header.jsp"/>
<put-attribute name="menu" value="/WEB-INF/jsp/menu.jsp"/>
<put-attribute name="body" value=""/>
<put-attribute name="footer" value="/WEB-INF/jsp/footer.jsp"/>
</definition>
</tiles-definitions>
这里定义了一个名为base
的Tiles模板,使用/WEB-INF/jsp/layout.jsp
为模板,通过put-attribute
标签设置了模板的五个部分:title
、header
、menu
、body
、footer
。
在/WEB-INF/jsp
目录下,创建一个layout.jsp
文件,代码如下:
<!DOCTYPE html>
<html>
<head>
<title><tiles:insertAttribute name="title"/></title>
</head>
<body>
<header><tiles:insertAttribute name="header"/></header>
<nav><tiles:insertAttribute name="menu"/></nav>
<section><tiles:insertAttribute name="body"/></section>
<footer><tiles:insertAttribute name="footer"/></footer>
</body>
</html>
这里使用<tiles:insertAttribute>
标签插入了模板的各个部分。
4. 示例展示1
在/WEB-INF/tiles
目录下,创建一个名为test.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="test" extends="base">
<put-attribute name="title" value="Test Page"/>
<put-attribute name="body" value="/WEB-INF/jsp/test.jsp"/>
</definition>
</tiles-definitions>
这里定义了一个名为test
的Tiles模板,扩展自base
模板,通过put-attribute
标签设置了模板的标题为Test Page
,body
部分为/WEB-INF/jsp/test.jsp
页面。
在/WEB-INF/jsp
目录下,创建一个名为test.jsp
的文件,代码如下:
<h1>Test Page</h1>
这里只是一个简单的H1标签,表示/WEB-INF/tiles/test.tiles.xml
中的body
部分被成功引用。
在Controller中返回test
字符串即可访问该页面,代码如下所示:
@Controller
@RequestMapping("/test")
public class TestController {
@RequestMapping(method = RequestMethod.GET)
public String test() {
return "test";
}
}
打开浏览器,访问http://localhost:8080/test
,可以看到/WEB-INF/jsp/test.jsp
页面被/WEB-INF/tiles/test.tiles.xml
模板套用。
5. 示例展示2
在/WEB-INF/tiles
目录下,创建一个名为welcome.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="welcome" extends="base">
<put-attribute name="title" value="Welcome"/>
<put-attribute name="body" value="/WEB-INF/jsp/welcome.jsp"/>
</definition>
</tiles-definitions>
这里定义了一个名为welcome
的Tiles模板,扩展自base
模板,通过put-attribute
标签设置了模板的标题为Welcome
,body
部分为/WEB-INF/jsp/welcome.jsp
页面。
在/WEB-INF/jsp
目录下,创建一个名为welcome.jsp
的文件,代码如下:
<h1>Welcome</h1>
这里只是一个简单的H1标签,表示/WEB-INF/tiles/welcome.tiles.xml
中的body
部分被成功引用。
在Controller中返回空字符串即可访问该页面,并在@RequestMapping
注解中添加name
属性,代码如下所示:
@Controller
public class WelcomeController {
@RequestMapping(value = "/", method = RequestMethod.GET, name = "welcome")
public String index() {
return "";
}
}
打开浏览器,访问http://localhost:8080
,可以看到/WEB-INF/jsp/welcome.jsp
页面被/WEB-INF/tiles/welcome.tiles.xml
模板套用。
到此,Spring Boot中配置JSP和Tiles的全过程介绍完毕。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:springboot中jsp配置tiles全过程 - Python技术站