springboot中三种xxxx.setAttribute()并与python中flask作对应比较+容器的通俗理解
对应关系如下:
Java | python |
Spring boot | Flask |
import javax.servlet.http.HttpServletRequest; |
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} |
Thymeleaf | Jinja2 |
完整代码举例如下:
package org.fkit.thymeleaftest.controller;import java.util.ArrayList;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.fkit.thymeleaftest.domain.Book;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.context.request.RequestAttributes;
import org.springframework.web.context.request.WebRequest;@Controller
public class ThymeleafController {/** 保存数据到作用范围域,用于测试Thymeleaf表达式访问数据* */@RequestMapping("/regexptest")public String regexptest(HttpServletRequest request,HttpSession session){System.out.println(request.getParameter("loginName"));System.out.println(request.getParameter("password"));//接受页面请求中的参数(这里其实是视图函数)
//接收参数后直接打印,其实这里应该扩展为去数据库进行校验request.setAttribute("book", "疯狂Spring Boot讲义");// 保存数据到session作用范围域当中session.setAttribute("school", "疯狂软件");// 保存数据到ServletContext(application)作用范围域当中request.getServletContext().setAttribute("name", "Thymeleaf模板引擎");return "success1";}/** 保存数据到作用范围域,用于测试Thymeleaf的条件判断* */@RequestMapping("/iftest")public String iftest(WebRequest webRequest){// 保存数据到request作用范围域,Spring MVC更推荐使用WebRequestwebRequest.setAttribute("username", "fkit", RequestAttributes.SCOPE_REQUEST);webRequest.setAttribute("age", 21, RequestAttributes.SCOPE_REQUEST);webRequest.setAttribute("role", "admin", RequestAttributes.SCOPE_REQUEST);
//s:变量名称
//o:变量取值
//role:变量return "success2";}/** 保存数据到作用范围域,用于测试Thymeleaf的循环获取数据* */@RequestMapping("/eachtest")public String eachtest(WebRequest webRequest){// 模拟数据库数据保存到List集合List<Book> books = new ArrayList<>();// 下面将对象初始化以后加入列表books.add(new Book(1, "疯狂Java讲义-补充", "java.jpg", "李刚 编著", 109.00));books.add(new Book(2, "轻量级Java EE企业应用实战", "ee.jpg", "李刚 编著", 108.00));books.add(new Book(3, "Spring+MyBatis应用实战", "SpringMyBatis.jpg", "疯狂软件 编著", 58.00));books.add(new Book(4, "疯狂Android讲义", "android.jpg", "李刚 编著", 108.00));books.add(new Book(5, "疯狂Ajax开发", "ajax.jpg", "李刚 编著", 79.00));// 保存数据到request作用范围域webRequest.setAttribute("books", books, RequestAttributes.SCOPE_REQUEST);/*这里的数据是通过thymeleaf传递到网页上*/
// 这里“books”是与html页面对应的变量名
// 上面的webRequest是用来设置传递给html的变量的return "success3";}}
关于上述三个java的thymeleaf用法的具体区别,也可以参考[1]
Springboot中的容器到底是什么意思呢?
我们想必听过docker,也就是一个系统里面再做一个系统,
所以Spring boot中的容器概念其实类似于Javaweb版本的docker.
Reference:
[1]Difference of 3 xxx.setAttribute()
springboot中三种xxxx.setAttribute()并与python中flask作对应比较+容器的通俗理解相关推荐
- java中三种转string的方法_java中int,char,string三种类型的相互转换
如何将字串 String 转换成整数 int? int i = Integer.valueOf(my_str).intValue(); int i=Integer.parseInt(str); 如何将 ...
- python中常见的三种选择结构_在Python中,实现多分支选择结构的最佳方法是
在Python中,实现多分支选择结构的最佳方法是 答:if-elif-else 绘制建筑平面图时,被剖切的墙用 线绘制,定位轴线用 线绘制 答:粗实 细点画 智慧职教: 下列关于书写住院病历的叙述不正 ...
- VMWare学习总结(2)——VMware中三种网络连接的区别
1.概述 大家在安装完虚拟机后,默认安装了如下图的两块虚拟网卡--VMnet1和VMnet8,其中VMnet1是host网卡,用于host方式连接网络:VMnet8是NAT网卡,用于NAT方式连接网络 ...
- Spring Boot 中三种跨域场景总结
文章目录 1.什么是跨域 2.解决方案 2.1 存在的问题 3.SpringSecurity 3.1 方式一 3.2 方式二 4.OAuth2 5.小结 跨域这个问题松哥之前写过文章,但是最近收到小伙 ...
- pl/sql中三种游标循环效率对比
pl/sql中三种游标循环效率对比 - Oracle数据库栏目 - 红黑联盟 http://www.2cto.com/database/201307/224636.html 转载于:https://b ...
- 简单介绍Lua中三种循环语句的使用
今天小编就为大家分享一篇关于Lua中三种循环语句的使用讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧 Lua的循环和C语言的循环的语法其实差不多,所以, ...
- zynq学习03 zynq中三种实现GPIO的方式
http://m.blog.csdn.net/article/details?id=52123465 http://blog.chinaaet.com/songhuangong/p/43084 本文介 ...
- C#中三种定时器对象的比较
·关于C#中timer类 在C#里关于定时器类就有3个 1.定义在System.Windows.Forms里 2.定义在System.Threading.Timer类里 3.定义在System.Tim ...
- VMware vSphere中三种磁盘:精简置备/厚置备置零/厚置备延迟置零
有时候我们可能会遇到这样几种现象:虚拟机置备100G,但是平台上却显示虚拟机使用了500G存储? 平台上看到所有虚拟机加起来才3T,存储上5T的空间却没了,严重的还导致所有虚拟机宕机. 为啥?都是&q ...
最新文章
- Mongo北京大会3月3号召开!报名抢注火爆进行中!(免费)
- Celery组件架构介绍
- 学习,才是最好的投资~
- python线程通信 消息传递_Python并发编程之线程消息通信机制/任务协调(四)
- 聚焦2016:关于语音识别、图像识别及大数据
- python速学_60分钟Python快速学习(给发哥一个交代)
- OpenCV-图像处理(23、直方图均衡化)
- 算法4(一、递归学习)
- “一键淘宝”将淘宝网店免费转移到手机客户端教程
- 我工作第五年的学习与读书之法
- html怎么在图中加字,用HTML代码在图片上加字
- bbys_tu_2016(ret2text)
- PHP动态网站开发期末试卷,《PHP动态网站开发实例教程》课程考核方案
- pr如何处理音效_PR音乐音效处理教程 Premiere Pro CC Essential Sound
- poj日记(3295)
- 常用二极管IN4148和单片机驱动的一些关系
- HttpClient4.4.1模拟登录知乎
- mshtml与System.Windows.Forms.HtmlElement
- word表格导出html代码,(网页源代码中的表格数据怎么导出excel)如何将把从WORD、EXCEL中复制的内容转换成HTML源代码,再通过网页表单提交上传到数据库?...
- 数学不好,可以当程序员么?
热门文章
- slatstack Master的配置
- wxPython布局管理
- 页面的div中有滚动条,js实现刷新页面后回到记录时滚动条的位置
- Web---JSP-EL表达式
- Pyhton 一行代码求Fibonacci第N项
- Combination Sum 和Combination Sum II
- 介绍语义HTML5元素(感觉这个html5是一个不错的方向!)
- 【转】从哈希存储到Bloom Filter
- mac下使用n管理node版本
- html溢出宽度控制,html - 具有固定宽度列的HTML / CSS表(如果内容溢出,则滚动) - 堆栈内存溢出...