Spring Boot Thymeleaf模板引擎使用專案上下文ServletContext ,session,request等傳遞資料
阿新 • • 發佈:2020-12-19
技術標籤:大後端spring boot
com.docker.demo.controller.BaseController
@Component
public class BaseController {
/**
* 獲取request
*
* @return request
*/
public HttpServletRequest getRequest() {
ServletRequestAttributes requestAttributes = (ServletRequestAttributes) RequestContextHolder. getRequestAttributes();
if (requestAttributes == null) {
return null;
}
return requestAttributes.getRequest();
}
/**
* 獲取response
*
* @return response
*/
public HttpServletResponse getResponse() {
ServletRequestAttributes requestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
if (requestAttributes == null) {
return null;
}
return requestAttributes.getResponse();
}
/**
* 獲取session
*
* @return session
*/
public HttpSession getSession() {
HttpServletRequest request = getRequest();
if (request == null) {
return null;
}
return request.getSession();
}
}
com.docker.demo.entity.Student
實體類
package com.docker.demo.entity;
import lombok.Data;
/**
* @author Administrator
*/
@Data
public class Student {
private String name;
private Integer age;
public Student(String name, Integer age){
this.name = name;
this.age = age;
}
}
com.docker.demo.controller.TestController
@Controller
public class TestController extends BaseController {
@RequestMapping
public String test(Model model) {
// model
model.addAttribute("name", "dump");
List<Student> students = new ArrayList<>();
students.add(new Student("test1", 11));
students.add(new Student("test2", 22));
students.add(new Student("test3", 33));
model.addAttribute("students", students);
// request
getRequest().setAttribute("request", "request66");
// session
getSession().setAttribute("session", "session66");
// ServletContext
getRequest().getServletContext().setAttribute("request2", "request266");
return "test";
}
}
html
<!DOCTYPE html>
<HTML xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>index</title>
<link rel="stylesheet" th:href="@{/test/test.css}">
<script th:inline="javascript">
var name = [[${name}]];
</script>
</head>
<body>
<table>
<tbody>
<tr th:each="student,status:${students}" th:class="${status.first} ? 'first' : ''">
<!-- model -->
<td th:text="${status.index}"></td>
<td th:text="${student.name}"></td>
<td th:text="${student.age}"></td>
<!-- session -->
<td th:text="${session.session}"></td>
<!-- request -->
<td th:text="${#request.getAttribute('request')}"></td>
<!-- ServletContext -->
<td th:text="${application.request2}"></td>
</tr>
</tbody>
</table>
</body>
</html>