spring-boot-demo-template-thymeleaf
本 demo 主要演示了 Spring Boot ?目如何集成 thymeleaf 模板引擎
<?
xml
version
=
"
1.0
"
encoding
=
"
UTF-8
"
?>
<
project
xmlns
=
"
http://maven.apache.org/POM/4.0.0
"
xmlns
:
xsi
=
"
http://www.w3.org/2001/XMLSchema-instance
"
xsi
:
schemaLocation
=
"
http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd
"
>
<
modelVersion
>4.0.0</
modelVersion
>
<
artifactId
>spring-boot-demo-template-thymeleaf</
artifactId
>
<
version
>1.0.0-SNAPSHOT</
version
>
<
packaging
>jar</
packaging
>
<
name
>spring-boot-demo-template-thymeleaf</
name
>
<
description
>Demo project for Spring Boot</
description
>
<
parent
>
<
groupId
>com.xkcoding</
groupId
>
<
artifactId
>spring-boot-demo</
artifactId
>
<
version
>1.0.0-SNAPSHOT</
version
>
</
parent
>
<
properties
>
<
project
.build.sourceEncoding>UTF-8</
project
.build.sourceEncoding>
<
project
.reporting.outputEncoding>UTF-8</
project
.reporting.outputEncoding>
<
java
.version>1.8</
java
.version>
</
properties
>
<
dependencies
>
<
dependency
>
<
groupId
>org.springframework.boot</
groupId
>
<
artifactId
>spring-boot-starter-thymeleaf</
artifactId
>
</
dependency
>
<
dependency
>
<
groupId
>org.springframework.boot</
groupId
>
<
artifactId
>spring-boot-starter-web</
artifactId
>
</
dependency
>
<
dependency
>
<
groupId
>org.springframework.boot</
groupId
>
<
artifactId
>spring-boot-starter-test</
artifactId
>
<
scope
>test</
scope
>
</
dependency
>
<
dependency
>
<
groupId
>org.projectlombok</
groupId
>
<
artifactId
>lombok</
artifactId
>
<
optional
>true</
optional
>
</
dependency
>
<
dependency
>
<
groupId
>cn.hutool</
groupId
>
<
artifactId
>hutool-all</
artifactId
>
</
dependency
>
</
dependencies
>
<
build
>
<
finalName
>spring-boot-demo-template-thymeleaf</
finalName
>
<
plugins
>
<
plugin
>
<
groupId
>org.springframework.boot</
groupId
>
<
artifactId
>spring-boot-maven-plugin</
artifactId
>
</
plugin
>
</
plugins
>
</
build
>
</
project
>
/**
* <p>
* 主?
* </p>
*
* @author yangkai.shen
* @date Created in 2018-10-10 10:12
*/
@
Controller
@
Slf4j
public
class
IndexController
{
@
GetMapping
(
value
= {
""
,
"/"
})
public
ModelAndView
index
(
HttpServletRequest
request
) {
ModelAndView
mv
=
new
ModelAndView
();
User
user
= (
User
)
request
.
getSession
().
getAttribute
(
"user"
);
if
(
ObjectUtil
.
isNull
(
user
)) {
mv
.
setViewName
(
"redirect:/user/login"
);
}
else
{
mv
.
setViewName
(
"page/index"
);
mv
.
addObject
(
user
);
}
return
mv
;
}
}
/**
* <p>
* 用??面
* </p>
*
* @author yangkai.shen
* @date Created in 2018-10-10 10:11
*/
@
Controller
@
RequestMapping
(
"/user"
)
@
Slf4j
public
class
UserController
{
@
PostMapping
(
"/login"
)
public
ModelAndView
login
(
User
user
,
HttpServletRequest
request
) {
ModelAndView
mv
=
new
ModelAndView
();
mv
.
addObject
(
user
);
mv
.
setViewName
(
"redirect:/"
);
request
.
getSession
().
setAttribute
(
"user"
,
user
);
return
mv
;
}
@
GetMapping
(
"/login"
)
public
ModelAndView
login
() {
return
new
ModelAndView
(
"page/login"
);
}
}
<!doctype html>
<
html
lang
=
"
en
"
xmlns:th
=
"
http://www.thymeleaf.org
"
>
<
header
th:replace
=
"
~{common/head :: header}
"
></
header
>
<
body
>
<
div
id
=
"
app
"
style
=
"
margin
:
20
px
20
%
"
>
?迎登?,<
span
th:text
=
"
${
user
.
name
}
"
></
span
>!
</
div
>
</
body
>
</
html
>
<!doctype html>
<
html
lang
=
"
en
"
xmlns:th
=
"
http://www.thymeleaf.org
"
>
<
header
th:replace
=
"
~{common/head :: header}
"
></
header
>
<
body
>
<
div
id
=
"
app
"
style
=
"
margin
:
20
px
20
%
"
>
<
form
action
=
"
/demo/user/login
"
method
=
"
post
"
>
用?名<
input
type
=
"
text
"
name
=
"
name
"
placeholder
=
"
用?名
"
/>
密?<
input
type
=
"
password
"
name
=
"
password
"
placeholder
=
"
密?
"
/>
<
input
type
=
"
submit
"
value
=
"
登?
"
>
</
form
>
</
div
>
</
body
>
</
html
>
server
:
port
:
8080
servlet
:
context-path
:
/demo
spring
:
thymeleaf
:
mode
:
HTML
encoding
:
UTF-8
servlet
:
content-type
:
text/html
cache
:
false
https://www.thymeleaf.org/doc/tutorials/3.0/usingthymeleaf.html