请选择 进入手机版 | 继续访问电脑版
本站特色:极好的技术研究氛围!所有技术交流,必有回复!

疯狂Java联盟

 找回密码
 加入联盟
查看: 96|回复: 0

Spring Boot2.0连载(27)-- 测试Thymeleaf表达式访问数据

[复制链接]
发表于 2018-5-13 21:32:36 | 显示全部楼层 |阅读模式
更多Spring Boot2.0的知识敬请期待疯狂软件著作《Spring Boot企业应用实战》上市

Index.html:
  1. <div class="container">
  2.     <div class="row">
  3.         <div class="col-md-4">
  4.             <a th:href="@{regexptest?loginName=jack&amp;password=123456}">测试表达式访问数据</a><br/><br/>
  5.         </div>
  6.     </div>
  7. </div>
复制代码


Index.html中有一个超链接,分别用来测试thymeleaf的表达式。

ThymeleafController:
i
  1. mport java.util.ArrayList;
  2. import java.util.List;
  3. import javax.servlet.http.HttpServletRequest;
  4. import javax.servlet.http.HttpSession;
  5. import org.fkit.thymeleaftest.domain.Book;
  6. import org.springframework.stereotype.Controller;
  7. import org.springframework.web.bind.annotation.RequestMapping;
  8. import org.springframework.web.context.request.WebRequest;
  9. import org.springframework.web.context.request.RequestAttributes;
  10. @Controller
  11. public class ThymeleafController {
  12.    
  13.     /*
  14.      * 保存数据到作用范围域,用于测试Thymeleaf表达式访问数据
  15.      * */
  16.     @RequestMapping("/regexptest")
  17.     public String regexptest(
  18.             HttpServletRequest request,
  19.             HttpSession session){
  20.         // 保存数据到request作用范围域当中
  21.         request.setAttribute("book", "疯狂Spring Boot讲义");
  22.         // 保存数据到session作用范围域当中
  23.         session.setAttribute("school", "疯狂软件");
  24.         // 保存数据到ServletContext(application)的作用范围域当中
  25.         request.getServletContext().setAttribute("name", "Thymeleaf模板引擎");
  26.         return "success1";
  27.     }
  28. }
复制代码

ThymeleafController类用来响应index.html中的请求,regexptest方法用来响应第一个请求<a th:href="@{regexptest?loginName=jack&password=123456}">测试表达式访问数据</a>,regexptest方法中设置了一个“book”变量到request作用范围域当中;设置了一个“school”变量到session作用范围域当中;设置了一个“name”变量到ServletContext全局作用范围域当中。然后返回success1.html。

success1.html:
  1. <!DOCTYPE html>
  2. <html xmlns:th="http://www.thymeleaf.org">
  3. <head>
  4. <meta charset="UTF-8"></meta>
  5. <title>thymeleaf示例</title>
  6. <link rel="stylesheet" th:href="@{css/bootstrap.min.css}" />
  7. <link rel="stylesheet" th:href="@{css/bootstrap-theme.min.css}"/>
  8. <script type="text/javascript" th:src="@{js/jQuery-1.11.0.min.js}"></script>
  9. <script type="text/javascript" th:src="@{js/bootstrap.min.js}"></script>
  10. </head>
  11. <body>
  12. <div class="panel panel-primary">
  13.     <div class="panel-heading">
  14.         <h3 class="panel-title">Thymeleaf表达式访问数据</h3>
  15.     </div>
  16. </div>
  17. <div class="container">
  18.     <div class="row">
  19.         <div class="col-md-4">
  20.             <p><font color="red">${param.x}将返回一个名为x的请求参数</font></p><br/>
  21.             访问页面传递的参数:<span th:text="${param.loginName[0]}">登录名</span>&nbsp;<span th:text="${param.password[0]}">密码</span>
  22.             <p><font color="red">${x}将返回存储在Thymeleaf上下文中的变量x或作为请求Request作用范围域中的属性。</font></p><br/>
  23.             访问request作用范围域中的变量:<span th:text="${book}">图书信息</span><br/>
  24.             <p><font color="red">${session.x}将返回一个名为x的会话HttpSession作用范围域中的属性。</font></p><br/>
  25.             访问session作用范围域中的变量:<span th:text="${session.school}">培训中心</span><br/>
  26.             <p><font color="red">${application.x}将返回一个名为x的全局ServletContext上下文作用范围域中的属性。</font></p><br/>
  27.             访问application作用范围域中的变量:<span th:text="${application.name}">动态页面模板</span><br/>
  28.         </div>
  29.     </div>
  30. </div>
  31. </body>
  32. </html>
复制代码


Success1.html中通过使用Thymeleaf表达式接收了请求传递的参数loginName和password,并分别访问了控制器中保存在request、session和application中的三个变量。

读者可以根据代码自行测试。



您需要登录后才可以回帖 登录 | 加入联盟

本版积分规则

小黑屋|手机版|Archiver|疯狂Java联盟 ( 粤ICP备11094030号 )

GMT+8, 2018-8-15 09:45 , Processed in 0.287236 second(s), 6 queries , File On.

快速回复 返回顶部 返回列表