当前位置:   article > 正文

springboot中三种xxxx.setAttribute()并与python中flask作对应比较+容器的通俗理解_springboot setattribute

springboot setattribute

对应关系如下:

Javapython
Spring bootFlask

import javax.servlet.http.HttpServletRequest;
HttpServletRequest.getServletContext().setAttribute("name", "Thymeleaf模板引擎");

from flask import g
import javax.servlet.http.HttpSession;
HttpSession.setAttribute()
from flask import session

import org.springframework.web.context.request.WebRequest;


webRequest.setAttribute("books", books, RequestAttributes.SCOPE_REQUEST);

return {'returnCode': 0, 'returnValue': returnValue}
ThymeleafJinja2

 

完整代码举例如下:

  1. package org.fkit.thymeleaftest.controller;
  2. import java.util.ArrayList;
  3. import java.util.List;
  4. import javax.servlet.http.HttpServletRequest;
  5. import javax.servlet.http.HttpSession;
  6. import org.fkit.thymeleaftest.domain.Book;
  7. import org.springframework.stereotype.Controller;
  8. import org.springframework.web.bind.annotation.RequestMapping;
  9. import org.springframework.web.context.request.RequestAttributes;
  10. import org.springframework.web.context.request.WebRequest;
  11. @Controller
  12. public class ThymeleafController {
  13. /*
  14. * 保存数据到作用范围域,用于测试Thymeleaf表达式访问数据
  15. * */
  16. @RequestMapping("/regexptest")
  17. public String regexptest(HttpServletRequest request,HttpSession session)
  18. {
  19. System.out.println(request.getParameter("loginName"));
  20. System.out.println(request.getParameter("password"));
  21. //接受页面请求中的参数(这里其实是视图函数)
  22. //接收参数后直接打印,其实这里应该扩展为去数据库进行校验
  23. request.setAttribute("book", "疯狂Spring Boot讲义");
  24. // 保存数据到session作用范围域当中
  25. session.setAttribute("school", "疯狂软件");
  26. // 保存数据到ServletContext(application)作用范围域当中
  27. request.getServletContext().setAttribute("name", "Thymeleaf模板引擎");
  28. return "success1";
  29. }
  30. /*
  31. * 保存数据到作用范围域,用于测试Thymeleaf的条件判断
  32. * */
  33. @RequestMapping("/iftest")
  34. public String iftest(WebRequest webRequest)
  35. {
  36. // 保存数据到request作用范围域,Spring MVC更推荐使用WebRequest
  37. webRequest.setAttribute("username", "fkit", RequestAttributes.SCOPE_REQUEST);
  38. webRequest.setAttribute("age", 21, RequestAttributes.SCOPE_REQUEST);
  39. webRequest.setAttribute("role", "admin", RequestAttributes.SCOPE_REQUEST);
  40. //s:变量名称
  41. //o:变量取值
  42. //role:变量
  43. return "success2";
  44. }
  45. /*
  46. * 保存数据到作用范围域,用于测试Thymeleaf的循环获取数据
  47. * */
  48. @RequestMapping("/eachtest")
  49. public String eachtest(WebRequest webRequest)
  50. {
  51. // 模拟数据库数据保存到List集合
  52. List<Book> books = new ArrayList<>();
  53. // 下面将对象初始化以后加入列表
  54. books.add(new Book(1, "疯狂Java讲义-补充", "java.jpg", "李刚 编著", 109.00));
  55. books.add(new Book(2, "轻量级Java EE企业应用实战", "ee.jpg", "李刚 编著", 108.00));
  56. books.add(new Book(3, "Spring+MyBatis应用实战", "SpringMyBatis.jpg", "疯狂软件 编著", 58.00));
  57. books.add(new Book(4, "疯狂Android讲义", "android.jpg", "李刚 编著", 108.00));
  58. books.add(new Book(5, "疯狂Ajax开发", "ajax.jpg", "李刚 编著", 79.00));
  59. // 保存数据到request作用范围域
  60. webRequest.setAttribute("books", books, RequestAttributes.SCOPE_REQUEST);
  61. /*这里的数据是通过thymeleaf传递到网页上*/
  62. // 这里“books”是与html页面对应的变量名
  63. // 上面的webRequest是用来设置传递给html的变量的
  64. return "success3";
  65. }
  66. }

关于上述三个java的thymeleaf用法的具体区别,也可以参考[1]

 

 

Springboot中的容器到底是什么意思呢?

我们想必听过docker,也就是一个系统里面再做一个系统,

所以Spring boot中的容器概念其实类似于Javaweb版本的docker.

 

Reference:

[1]Difference of 3 xxx.setAttribute()

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/371595
推荐阅读
相关标签
  

闽ICP备14008679号