hymeleaf 是一款用于渲染 XML/XHTML/HTML5 内容的模板引擎。类似 JSP,Velocity,FreeMaker 等,它也可以轻易的与 Spring MVC 等 Web 框架进行集成作为 Web 应用的模板引擎。与其它模板引擎相比,Thymeleaf 最大的特点是能够直接在浏览器中打开并正确显示模板页面,而不需要启动整个 Web 应用。
Thymeleaf 初探(原文位置 )
相比于其他的模板引擎,Thymeleaf 最大的特点是通过 HTML 的标签属性渲染标签内容,以下是一个 Thymeleaf 模板例子:
XHTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
xmlns:th="http://www.thymeleaf.org">
Good Thymes Virtual Grocery
href="../../css/gtvg.css" th:href="@{/css/gtvg.css}" />
Welcome to our grocery store!
这是一段标准的 HTML 代码,这也就意味着通过浏览器直接打开它是可以正确解析它的结构并看到页面的样子。相比去其他的模板引擎在指定的位置通过${}
等表达式进行渲染,Thymeleaf 则是一种针对 HTML/XML 定制的模板语言(当然它可以被扩展),它通过标签中的th:text
属性来填充该标签的一段内容。上例中,Welcome to our grocery store!
意味着
标签中的内容会被表达式#{home.welcome}
的值所替代,无论模板中它的内容是什么,之所以在模板中 “多此一举 “地填充它的内容,完全是为了它能够作为原型在浏览器中直接显示出来。
标准表达式语法
变量
Thymeleaf 模板引擎在进行模板渲染时,还会附带一个 Context 存放进行模板渲染的变量,在模板中定义的表达式本质上就是从 Context 中获取对应的变量的值:
XHTML
1
Today is: 13 february 2011 .
假设today
的值为2015年8月14日
,那么渲染结果为:Today is: 2015年8月14日.
。可见 Thymeleaf 的基本变量和 JSP 一样,都使用${.}
表示获取变量的值。
URL
URL 在 Web 应用模板中占据着十分重要的地位,需要特别注意的是 Thymeleaf 对于 URL 的处理是通过语法@{...}
来处理的。Thymeleaf 支持绝对路径 URL:
XHTML
同时也能够支持相对路径 URL:
当前页面相对路径 URL——user/login.html
,通常不推荐这样写。
Context 相关 URL——/static/css/style.css
另外,如果需要 Thymeleaf 对 URL 进行渲染,那么务必使用th:href
,th:src
等属性,下面是一个例子
XHTML
几点说明:
上例中 URL 最后的 (orderId=${o.id}) 表示将括号内的内容作为 URL 参数处理,该语法避免使用字符串拼接,大大提高了可读性
@{...}
表达式中可以通过{orderId}
访问 Context 中的orderId
变量
@{/order}
是 Context 相关的相对路径,在渲染时会自动添加上当前 Web 应用的 Context 名字,假设 context 名字为 app,那么结果应该是/app/order
如果 URLs 写在 style 的属性里,那么
XHTML
替换写成 style 前面加 th: 链接的前后加上 + 号运算符,如下:
XHTML
字符串替换
很多时候可能我们只需要对一大段文字中的某一处地方进行替换,可以通过字符串拼接操作完成:
XHTML
一种更简洁的方式是:
XHTML
当然这种形式限制比较多,|...|
中只能包含变量表达式${...}
,不能包含其他常量、条件表达式等。
运算符
在表达式中可以使用各类算术运算符,例如 +, -, *, /, %
XHTML
1
th:with="isEven=(${prodStat.count} % 2 == 0)"
逻辑运算符>
, <
, <=
,>=
,==
,!=
都可以使用,唯一需要注意的是使用<
,>
时需要用它的 HTML 转义符:
XHTML
1
2
th:if="${prodStat.count} > 1"
th:text="'Execution mode is ' + ( (${execMode} == 'dev')? 'Development' : 'Production')"
循环
渲染列表数据是一种非常常见的场景,例如现在有 n 条记录需要渲染成一个表格,该数据集合必须是可以遍历的,使用th:each
标签:
XHTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Product list
NAME
PRICE
IN STOCK
Onions
2.41
yes
Return to home
可以看到,需要在被循环渲染的元素(这里是)中加入th:each
标签,其中th:each="prod : ${prods}"
意味着对集合变量prods
进行遍历,循环变量是prod
在循环体中可以通过表达式访问。
条件求值
If/Unless
Thymeleaf 中使用th:if
和th:unless
属性进行条件判断,下面的例子中,
标签只有在th:if
中条件成立时才显示:
XHTML
th:unless
于th:if
恰好相反,只有表达式中的条件不成立,才会显示其内容。
Login
Switch
Thymeleaf 同样支持多路选择 Switch 结构:
XHTML
1
2
3
4
User is an administrator
User is a manager
默认属性 default 可以用*
表示:
XHTML
1
2
3
4
5
User is an administrator
User is a manager
User is some other thing
Utilities
为了模板更加易用,Thymeleaf 还提供了一系列 Utility 对象(内置于 Context 中),可以通过#
直接访问:
#dates
#calendars
#numbers
#strings
arrays
lists
sets
maps
…
下面用一段代码来举例一些常用的方法:
#dates
XHTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
/*
* Format date with the specified pattern
* Also works with arrays, lists or sets
*/
${#dates.format(date, 'dd/MMM/yyyy HH:mm')}
${#dates.arrayFormat(datesArray, 'dd/MMM/yyyy HH:mm')}
${#dates.listFormat(datesList, 'dd/MMM/yyyy HH:mm')}
${#dates.setFormat(datesSet, 'dd/MMM/yyyy HH:mm')}
/*
* Create a date (java.util.Date) object for the current date and time
*/
${#dates.createNow()}
/*
* Create a date (java.util.Date) object for the current date (time set to 00:00)
*/
${#dates.createToday()}
#strings
XHTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
/*
* Check whether a String is empty (or null). Performs a trim() operation before check
* Also works with arrays, lists or sets
*/
${#strings.isEmpty(name)}
${#strings.arrayIsEmpty(nameArr)}
${#strings.listIsEmpty(nameList)}
${#strings.setIsEmpty(nameSet)}
/*
* Check whether a String starts or ends with a fragment
* Also works with arrays, lists or sets
*/
${#strings.startsWith(name,'Don')} // also array*, list* and set*
${#strings.endsWith(name,endingFragment)} // also array*, list* and set*
/*
* Compute length
* Also works with arrays, lists or sets
*/
${#strings.length(str)}
/*
* Null-safe comparison and concatenation
*/
${#strings.equals(str)}
${#strings.equalsIgnoreCase(str)}
${#strings.concat(str)}
${#strings.concatReplaceNulls(str)}
/*
* Random
*/
${#strings.randomAlphanumeric(count)}
页面即原型
在 Web 开发过程中一个绕不开的话题就是前端工程师与后端工程师的协作,在传统 Java Web 开发过程中,前端工程师和后端工程师一样,也需要安装一套完整的开发环境,然后各类 Java IDE 中修改模板、静态资源文件,启动 / 重启 / 重新加载应用服务器,刷新页面查看最终效果。
但实际上前端工程师的职责更多应该关注于页面本身而非后端,使用 JSP,Velocity 等传统的 Java 模板引擎很难做到这一点,因为它们必须在应用服务器中渲染完成后才能在浏览器中看到结果,而 Thymeleaf 从根本上颠覆了这一过程,通过属性进行模板渲染不会引入任何新的浏览器不能识别的标签,例如 JSP 中的
,不会在 Tag 内部写表达式。整个页面直接作为 HTML 文件用浏览器打开,几乎就可以看到最终的效果,这大大解放了前端工程师的生产力,它们的最终交付物就是纯的 HTML/CSS/JavaScript 文件。
Thymeleaf 之 内置对象、定义变量、URL参数及标签自定义属性
如标题所述,这篇文章主要讲述Thymeleaf中的内置对象(list解析、日期格式化、数字格式化等)、定义变量、获取URL的参数和在页面标签中自定义属性的应用。
如果对Thymeleaf的基本使用、maven依赖等不清楚的可以先阅读我的另一篇文章《Thymeleaf 之 初步使用》。
@Controller
public class IndexController {
@GetMapping(value = "index")
public String index(Model model, HttpServletRequest request) {
List datas = new ArrayList();
datas.add("知识林");
datas.add("http://www.zslin.com");
datas.add("393156105");
model.addAttribute("datas", datas);
model.addAttribute("curDate", new Date());
model.addAttribute("money", Math.random()*100);
return "index";
}
}
在这个控制器的Model中存放了这样几个数据:一个String类型的列表、一个日期对象和一个数值,这些东西在实际应用开发过程中应用非常广泛,下面具体看一下在Thymeleaf中是如何解析这些数据的。
说明: 使用内置对象dates
的format
函数即可对日期进行格式化,在format
函数中,第一个参数是日期对象,对二两个参数为日期格式(规则跟SimpleDateFormat
一样)
需要注意的是:
· 内置对象一般都以s
结尾,如dates
、lists
、numbers
等
· 在使用内置对象是在对象名前都需要加#
号。
说明: 此示例表示保留两位小数位,整数位自动;
说明: 此示例表示保留两位小数位,3位整数位(不够的前加0)
说明: 使用#lists.size
来获取List的长度。
说明: 当访问http://localhost:1105/index?page=5
时页面将会得到page
对应的值:5
。
当前页码:
说明: 同样,当访问http://localhost:1105/index?page=5
时,页面将显示:当前页码:5
,说明用th:with
来定义变量,多个用,
号隔开,使用范围在当前标签内。
在Thymeleaf中可以使用th:
加上标签的任何属性进行赋值,但有些时候会遇到自定义的属性,再用th:
加自定义的属性则会无效。比如:需要对
标签增加objName
和objId
这样的属性,在非Thymeleaf情况下是这样:
变量情况是:
在Thymeleaf下则是:
说明: 在页面上查看源代码可以看到:
,说明自定义属性用:th:attr
,多个属性用,
隔开。
上面简单描述了比较常用的dates
、lists
、numbers
这几个内置对象,在Thymeleaf还有很多的内置对象,像strings
也非常常用,用法跟java.lang.String
类的用法一样。
在Thymeleaf中的内置对象有:
#dates
:日期格式化内置对象,具体方法可以参照java.util.Date
;
#calendars
:类似于#dates
,但是是java.util.Calendar
类的方法;
#numbers
: 数字格式化;
#strings
:字符串格式化,具体方法可以参照java.lang.String
,如startsWith
、contains
等;
#objects
:参照java.lang.Object
;
#bools
:判断boolean类型的工具;
#arrays
:数组操作的工具;
#lists
:列表操作的工具,参照java.util.List
;
#sets
:Set操作工具,参照java.util.Set
;
#maps
:Map操作工具,参照java.util.Map
;
#aggregates
:操作数组或集合的工具;
#messages
:操作消息的工具。
thymeleaf+bootstrap,onclick传参
或 使用字符串拼接的另外一种简洁写法:
如果参数是字符串,需要加引号,如上图所示。否则会报错:Uncaught SyntaxError:Invalid regular expressiong flags
如果只传数字,可以不加引号,如下图所示:
Edit
https://yq.aliyun.com/articles/60696
Do You Really Want to Delete This?
如果需要弹出的Modal窗口垂直居中,水平居中,可以添加以下css样式(这个样式是覆盖了bootstrap的。tips,这个css是为上面的Modal div深度定制的,如需更改,需确定上面的html是否同步更改)
.modal {
text-align: center;
}
@media screen and (min-width: 768px) {
.modal:before {
display: inline-block;
vertical-align: middle;
content: " ";
height: 100%;
}
}
.modal-dialog {
display: inline-block;
text-align: left;
vertical-align: middle;
}
你可能感兴趣的:(Thymeleaf)
Springboot2 thymeleaf 静态资源加版本号控制缓存更新
VIAE
最近写了一个前后端不分离的项目了,用的Springboot2thymeleaf用的js原生,没有用到webpack,所以不能在每次js变更以后打包自动给静态文件加上hash后缀关于静态资源缓存不更新的问题,用了以下几种解决方案方法一在静态资源引用的时候加上版本号,最开始我就是这么做的,因为当时确实没几个文件index.htmlbug:文件多了以后,这种方法就不太适合了方法二动态添加静态资源,加时间
SpringBoot:Thymeleaf集成
dingcho
前端 SpringCloud spring boot Thymeleaf集成
org.springframework.bootspring-boot-starter-thymeleaf配置ClassLoaderTemplateResolver:/***Function:todo**@program:TemplateConfig*@Package:com.kingbal.tohtml.tst*@author:dingcho*@date:2024/09/06*@version:
毕设/私活/bigold必备项目,一个挣钱的免费的全开源标准前后端分离后台管理权限系统【springboot+vue+redis+Spring Security】脚手架搭建:若依Ruo框架具体使用教程
南北极之间
前端开发 springboot vue springboot+vue 免费后台管理系统 毕业私活后台权限系统
【建议收藏】毕设/私活/大佬必备,一个挣钱的标准开源前后端分离【springboot+vue+redis+SpringSecurity】脚手架一个免费的开源后台管理系统:若依框架(具体使用教程:具体怎样下载?怎样使用?怎样配置后台接口地址?超详细)简介RuoYi是一个JavaEE企业级快速开发平台,基于经典技术组合(SpringBoot、ApacheShiro、MyBatis、Thymeleaf、
基于spring boot的旅游管理系统
鹿屿二向箔
spring boot 旅游 后端
一个简单的SpringBoot应用的基础结构示例,以及如何设置一个基本的旅游管理系统。这个例子将包含用户注册和登录的基本功能。首先,你需要设置一个新的SpringBoot项目。可以通过SpringInitializr网站(https://start.spring.io/)来快速生成一个基础项目结构,选择必要的依赖项,比如Web、Thymeleaf、SpringDataJPA和MySQLDriver
SpringMVC的架构有什么优势?——视图与模型(二)
不会编程的小孩子
架构
#SpringMVC的架构有什么优势?——视图与模型(二)前言关键字:机器学习人工智能AIchatGPT学习实现使用搭建深度python事件远程dockermysql安全技术部署技术自动化代码视图(View)视图是展示结果的组件,它们负责渲染模型数据并生成HTML输出。SpringMVC支持多种视图技术,包括JSP、Thymeleaf等。视图(View)是SpringMVC中渲染并呈现结果的组件,
springboot使用thymeleaf
汤飞
springboot
1.引入依赖 org.springframework.boot spring‐boot‐starter‐thymeleaf 3.0.9.RELEASE 2.2.2thymeleaf会自动渲染resource/templates下的html文件,静态资源存放在resource/static中2.新建测试htmlTitle这是显示欢迎信息id:n
Springboot+Mybatis+jpa+thymeleaf实现增删改查
柒麒
java spring boot mybatis
Springboot+Mybatis+jpa+thymeleaf项目结构pom文件Application配置文件实体类controller层实现类service层接口service层实现类dao层接口启动类index.html首页add.html添加页面update.html更新页面创建user表添加表数据首页展示添加修改删除总结项目结构pom文件配置相关依赖:UTF-8UTF-81.8org.s
项目在idea中运行正常,打包jar后运行就报错Template might not exist or might not be accessible的解决方法
技术菜鸟—淡定万
Springboot Java java spring maven html
报错情况[http-nio-80-exec-15]ERRORo.t.TemplateEngine-[process,1136]-[THYMELEAF][http-nio-80-exec
SpringBoot常见问题
一朝风月S
面试宝典 spring boot java
1引言SpringBoot是一个基于Spring框架的快速开发脚手架,它简化了Spring应用的初始化和搭建过程,提供了众多便利的功能和特性,比如自动配置、嵌入式Tomcat等,让开发人员可以更加专注于业务逻辑的实现。 SpringBoot还提供了强大的插件体系和广泛的集成,可以轻松地与其他技术栈集成,比如Thymeleaf模板、JPA、MyBatis、Redis、MongoDB等,同时也支持对
2.18日学习打卡----初学Dubbo(三)
中北萌新程序员
每日学习 学习 dubbo
2.18日学习打卡目录:2.18日学习打卡Dubbo实战项目介绍创建dubbo_parent父项目创建子项目user_api项目创建子项目user_consumer项目创建子项目user_provider项目模块用户实体类构建创建添加用户接口查询用户业务接口更新用户业务接口删除用户业务接口集成Thymeleaf用户添加业务消费者实现用户查询业务消费者实现在Consumer中调用更新用户业务用户删除
【Java】电子凭证-Java生成PDF
hkk666123
Java HTML 转 PDF htmlTOPDF
文章目录背景实现思路技术方案图TemplateEngines(模板引擎)`Thymeleaf``ApacheFreemarker``GroovyTemplates``velocity``HTMLTOPDF`技术各实现对比表WKhtmlTOpdfiTextPhantomJS技术核心:HTML生成PDF背景在某些业务场景中,需要提供相关的电子凭证,比如网银/支付宝中转账的电子回单,签约的电子合同等。方
JAVA后端主流开发框架
理查德.克莱德曼
JavaWeb SpringBoot java 后端 开发语言
项目介绍一款Java语言基于SpringBoot2.x、Layui、Thymeleaf、MybatisPlus、Shiro、MySQL等框架精心打造的一款模块化、插件化、高性能的前后端分离架构敏捷开发框架,可用于快速搭建后台管理系统,本着简化开发、提升开发效率的初衷,框架自研了一套个性化的组件,实现了可插拔的组件式开发方式:单图上传、多图上传、下拉选择、开关按钮、单选按钮、多选按钮、图片裁剪、富文
详解Springboot整合Shiro加盐加散列实现登陆注册小案例
鱼小洲
技术杂谈 shiro mybatis hash springboot boot-shiro
前言Springboot和Shiro的基本介绍我就不多说了,能看到这篇文章的相信也都会用。这篇文章主要是分享一下我在学习Shiro和Springboot的整合的小阶段。目前是复习,很感谢B站的up主——编程不良人的视频让我有了一个学习Shiro的基本方向。目前是实现了用户认证的功能。依赖整合的时候使用的是jsp,其实和thymeleaf一个道理,而且不涉及到作用域传值。我们需要导入的依赖有:mys
基于JAVA+Springboot+Thymeleaf前后端分离项目:在线婚纱租赁系统设计与实现
黄菊华老师
计算机系统成品 java spring boot 开发语言 在线婚纱租赁系统
博主介绍:黄菊华老师《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者,CSDN博客专家,在线教育专家,CSDN钻石讲师;专注大学生毕业设计教育和辅导。所有项目都配有从入门到精通的基础知识视频课程,学习后应对毕业设计答辩。项目配有对应开发文档、开题报告、任务书、PPT、论文模版等项目都录了发布和功能操作演示视频;项目的界面和功能都可以定制,包安装运行!!!如果需要联系我,可以在CSD
新手入门------SpringBoot文件上传实现
布吉岛-
入门SpringBoot spring boot java idea
本次的内容是实现文件上传,小案例要达到的效果是在浏览器选择好文件,然后上传,最后返回结果(失败或成功),分为单文件和多文件上传。一.案例准备首先还是进行springboot项目的创建,这个就不进行演示了。本次需要添加的依赖是springweb和thymeleaf。如果已经有项目但是没有选择这两个依赖,可以点击pom.xml,在中手动添加如下依赖:org.springframework.bootsp
java入门-springboot整合mybatis+layui
wwwzhouzy
java入门 java进阶-框架篇 spring boot ssm layui mybatis springboot
源码地址:https://codechina.csdn.net/wwwzhouzy/springboot-ssm先看看项目启动,访问页面的效果图:需要注意的地方:1、引入layui相关资源文件时注意路径,尤其是引用Thymeleaf标签时静态资源默认从static目录下查找2、注意json传送数据的编码问题,不然会有乱码继承WebMvcConfigurationSupport类,重写方法:@Bea
Spring Boot 与 Kotlin 使用JdbcTemplate连接MySQL
全科
之前介绍了一些Web层的例子,包括构建RESTfulAPI、使用Thymeleaf模板引擎渲染Web视图,但是这些内容还不足以构建一个动态的应用。通常我们做App也好,做Web应用也好,都需要内容,而内容通常存储于各种类型的数据库,服务端在接收到访问请求之后需要访问数据库获取并处理成展现给用户使用的数据形式。本文介绍在SpringBoot基础下配置数据源和通过JdbcTemplate编写数据访问的
基于Springboot开发实现的图书管理系统(附源码)
weixin_46668302
java Springboot spring boot mybatis java 图书管理系统
图书管理系统,使用当前最为流行的SpringBoot框架,可作为springboot的入门项目练习使用,也可稍加改进做一个毕业设计项目。一、相关技术栈前端:Thymeleaf、Layui、Ajax、JQuery后端:springboot,mybatis开发环境:IDEA、SpringBoot2.3、Maven数据库:MySQL5.7默认用户当您运行初始脚本后,默认存在以下用户,便于测试:登录名密码
Java高并发秒杀系统总结
成为更好的qyk嘻嘻
Redis SpringBoot java 开发语言 后端
项目框架搭建:1.SpringBoot环境搭建2.集成thymeleaf,封装公共返回beanRespBean3.MybatisPlus分布式会话:1.用户登录a.设计数据库b.明文密码二次MD5加密c.参数校验+全局异常处理2.共享Sessiona.redis功能开发:1.商品列表2.商品详情3.秒杀4.订单详情系统压测:1.JMeter2.自定义变量模拟多用户3.正式压测a.商品列表b.秒杀页
【Bug解决】themleaf 相对路径引用 js 静态文件失效
wzz2333
bug javascript java spring boot html 后端 前端
原生HTML文件test.html:测试项目结构:使用SpringBoot+themleaf模板后,位于相对路径处../scripts/目录下的js文件无法成功加载,导致echarts绘制的词云图未显示。解决方案:在标签中添加xmlns:th="http://www.thymeleaf.org",这是使用Thymeleaf所必需的。标签中的src属性替换为th:src,并使用@{}语法来指定资源的
【SpringBoot】SpringBoot+mysql+thymeleaf+mybatis实现一个Demo
谦风(主Java)(接口开发)
# SpringBoot mybatis ajax spring mysql
SpringBoot的数据库连接配置已经在上一篇博客说完啦,现在我们来进行一个Demo的实现,我们使用到的是SpringBoot+mysql+thymeleaf+mybatis首先先看一下我Demo程序的格局:我们逐步来看,首先要在数据库建表,这就不用多说了,我的user表对应的是User类属性packagecom.mybatis.demo.po;publicclassUser{privatein
SpringBoot整合Thymeleaf模板引擎
天乔巴夏丶
[toc]SpringBoot整合Thymeleaf零、本片要点介绍Thymeleaf的概念,理解Thymeleaf的便利且强大。介绍如何快速整合SpringBoot和Thymeleaf。介绍自动配置原理。一、Thymeleaf简介Thymeleaf是适用于Web和独立环境的现代服务器端Java模板引擎,能够处理HTML,XML,JavaScript,CSS甚至纯文本。Thymeleaf的主要目标
哆啦A梦主题网站(HTML5+CSS3+Javascript)
cycyong
javascript html5 css3
哆啦A梦主题网站1简介2技术介绍3项目演示和获取方式4打开方式5页面图片展示6部分代码展示1简介作为一名哆啦A梦的粉丝,也可以说是哆啦A梦的爱好者。我小时候特别喜欢看哆啦A梦的动画片,因此上大一的时候突发奇想做一个关于小哆啦的主题网站,以此致敬。2技术介绍本项目全程采用HTML5进行编写,有能力的小伙伴也可以将其改成Thymeleaf做成动态网站,静态资源等文件都是齐全的。HTML5CSS3Jav
Springboot实现文件上传
Joe14103
常用代码块与笔记 spring boot java upload intellij idea spring
一、新建Springboot项目并配置1.pom.xml核心依赖org.springframework.bootspring-boot-starter-weborg.springframework.bootspring-boot-starter-thymeleaf2.全局配置文件application.yml,注意yml文件格式spring:servlet:multipart:max-file-s
基于javaweb+mysql的springboot前台+后台在线考试系统设计和实现(java+springboot+ssm+mysql+thymeleaf+html+maven)
m0_71046928
java mysql spring boot
基于javaweb+mysql的springboot前台+后台在线考试系统设计和实现(java+springboot+ssm+mysql+thymeleaf+html+maven)运行环境Java≥8、MySQL≥5.7开发工具eclipse/idea/myeclipse/sts等均可配置运行适用课程设计,大作业,毕业设计,项目练习,学习演示等功能说明基于javaweb+mysql的SpringB
SpringBoot+MyBatisPlus+thymeleaf增删改查
dxjzs
mybatis vue.js mysql
SpringBoot+MyBatisPlus+thymeleaf增删改查一、基本介绍建议在写之前会熟练使用vue脚手架,以及掌握vue相关知识本文章会教你构建一个springboot+mybatisplus+thymeleaf+mysql的增删改查二、数据层1.导入SQL数据库名称edocmanagement/*NavicatPremiumDataTransferSourceServer:loca
springboot Thymeleaf基本使用
忘忧记
spring boot 后端 java
文章目录什么是Thymeleaf集成Thymeleaf模板引入依赖编辑配置编写controller测试访问Thymeleaf基础用法1).html文件使用thymeleaf语法必须导入thymeleaf的头才能使用相关语法2).在html中通过thymeleaf语法获取数据获取单个属性获取对象属性传递集合对象传递条件对象获取session作用域Thymeleaf如何引入静态资源使用thymelea
springboot基础案例(二)
忘忧记
spring boot java 后端
文章目录前言一.需求分析:分析这个项目含有哪些功能模块二.库表设计(概要设计):1.分析系统有哪些表2.分析表与表关系3.确定表中字段(显性字段隐性字段(业务字段))2.1创建一个库:ems-thymeleaf2.2创建2张表三.编码(环境搭建)1.创建一个springboot项目项目名字:ems-thymeleaf2.修改配置文件为application.ymlpom.xml3.修改端口9999
SpringBoot:web开发
ChinaDragonDreamer
# Spring Boot spring boot 前端 后端 bootstrap
web开发demo:点击查看LearnSpringBoot05Web点击查看更多的SpringBoot教程技术摘要webjarsBootstrap模板引擎thymeleaf嵌入式Servlet容器注册web三大组件一、webjarswebjars官网简介简介翻译WebJars是打包到JAR(JavaArchive)文件中的客户端Web库(例如jQuery和Bootstrap)。显式且轻松地管理基于
【Java】使用springbook、thymeleaf、mybatis、mysql等技术实现员工管理系统的制作
db_lcz_2014
java mybatis mysql
目录一、项目搭建二、项目实现2.1项目结构:2.2Controller层2.3model层2.4repository层2.5service层EmployeeService接口:EmployeeServiceImpl类:三、效果图展示(部分)四、学习心得一、项目搭建1、因要打印文档,故仅展示部分代码,详细请看代码源或者csdn博客网站2、项目搭建用到的技术是:springbook、thymeleaf
异常的核心类Throwable
无量
java 源码 异常处理 exception
java异常的核心是Throwable,其他的如Error和Exception都是继承的这个类 里面有个核心参数是detailMessage,记录异常信息,getMessage核心方法,获取这个参数的值,我们可以自己定义自己的异常类,去继承这个Exception就可以了,方法基本上,用父类的构造方法就OK,所以这么看异常是不是很easy
package com.natsu;
mongoDB 游标(cursor) 实现分页 迭代
开窍的石头
mongodb
上篇中我们讲了mongoDB 中的查询函数,现在我们讲mongo中如何做分页查询
如何声明一个游标
var mycursor = db.user.find({_id:{$lte:5}});
迭代显示游标数
MySQL数据库INNODB 表损坏修复处理过程
0624chenhong
tomcat mysql
最近mysql数据库经常死掉,用命令net stop mysql命令也无法停掉,关闭Tomcat的时候,出现Waiting for N instance(s) to be deallocated 信息。查了下,大概就是程序没有对数据库连接释放,导致Connection泄露了。因为用的是开元集成的平台,内部程序也不可能一下子给改掉的,就验证一下咯。启动Tomcat,用户登录系统,用netstat -
剖析如何与设计人员沟通
不懂事的小屁孩
工作
最近做图烦死了,不停的改图,改图……。烦,倒不是因为改,而是反反复复的改,人都会死。很多需求人员不知该如何与设计人员沟通,不明白如何使设计人员知道他所要的效果,结果只能是沟通变成了扯淡,改图变成了应付。
那应该如何与设计人员沟通呢?
我认为设计人员与需求人员先天就存在语言障碍。对一个合格的设计人员来说,整天玩的都是点、线、面、配色,哪种构图看起来协调;哪种配色看起来合理心里跟明镜似的,
qq空间刷评论工具
换个号韩国红果果
JavaScript
var a=document.getElementsByClassName('textinput');
var b=[];
for(var m=0;m<a.length;m++){
if(a[m].getAttribute('placeholder')!=null)
b.push(a[m])
}
var l
S2SH整合之session
灵静志远
spring AOP struts session
错误信息:
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'cartService': Scope 'session' is not active for the current thread; consider defining a scoped
xmp标签
a-john
标签
今天在处理数据的显示上遇到一个问题:
var html = '<li><div class="pl-nr"><span class="user-name">' + user
+ '</span>' + text + '</div></li>';
ulComme
Ajax的常用技巧(2)---实现Web页面中的级联菜单
aijuans
Ajax
在网络上显示数据,往往只显示数据中的一部分信息,如文章标题,产品名称等。如果浏览器要查看所有信息,只需点击相关链接即可。在web技术中,可以采用级联菜单完成上述操作。根据用户的选择,动态展开,并显示出对应选项子菜单的内容。 在传统的web实现方式中,一般是在页面初始化时动态获取到服务端数据库中对应的所有子菜单中的信息,放置到页面中对应的位置,然后再结合CSS层叠样式表动态控制对应子菜单的显示或者隐
天-安-门,好高
atongyeye
情感
我是85后,北漂一族,之前房租1100,因为租房合同到期,再续,房租就要涨150。最近网上新闻,地铁也要涨价。算了一下,涨价之后,每次坐地铁由原来2块变成6块。仅坐地铁费用,一个月就要涨200。内心苦痛。
晚上躺在床上一个人想了很久,很久。
我生在农
android 动画
百合不是茶
android 透明度 平移 缩放 旋转
android的动画有两种 tween动画和Frame动画
tween动画;,透明度,缩放,旋转,平移效果
Animation 动画
AlphaAnimation 渐变透明度
RotateAnimation 画面旋转
ScaleAnimation 渐变尺寸缩放
TranslateAnimation 位置移动
Animation
查看本机网络信息的cmd脚本
bijian1013
cmd
@echo 您的用户名是:%USERDOMAIN%\%username%>"%userprofile%\网络参数.txt"
@echo 您的机器名是:%COMPUTERNAME%>>"%userprofile%\网络参数.txt"
@echo ___________________>>"%userprofile%\
plsql 清除登录过的用户
征客丶
plsql
tools---preferences----logon history---history 把你想要删除的删除
--------------------------------------------------------------------
若有其他凝问或文中有错误,请及时向我指出,
我好及时改正,同时也让我们一起进步。
email : binary_spac
【Pig一】Pig入门
bit1129
pig
Pig安装
1.下载pig
wget http://mirror.bit.edu.cn/apache/pig/pig-0.14.0/pig-0.14.0.tar.gz
2. 解压配置环境变量
如果Pig使用Map/Reduce模式,那么需要在环境变量中,配置HADOOP_HOME环境变量
expor
Java 线程同步几种方式
BlueSkator
volatile synchronized ThredLocal ReenTranLock Concurrent
为何要使用同步? java允许多线程并发控制,当多个线程同时操作一个可共享的资源变量时(如数据的增删改查), 将会导致数据不准确,相互之间产生冲突,因此加入同步锁以避免在该线程没有完成操作之前,被其他线程的调用, 从而保证了该变量的唯一性和准确性。 1.同步方法&
StringUtils判断字符串是否为空的方法(转帖)
BreakingBad
null StringUtils “”
转帖地址:http://www.cnblogs.com/shangxiaofei/p/4313111.html
public static boolean isEmpty(String str)
判断某字符串是否为空,为空的标准是 str==
null
或 str.length()==
0
编程之美-分层遍历二叉树
bylijinnan
java 数据结构 算法 编程之美
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
public class LevelTraverseBinaryTree {
/**
* 编程之美 分层遍历二叉树
* 之前已经用队列实现过二叉树的层次遍历,但这次要求输出换行,因此要
jquery取值和ajax提交复习记录
chengxuyuancsdn
jquery取值 ajax提交
// 取值
// alert($("input[name='username']").val());
// alert($("input[name='password']").val());
// alert($("input[name='sex']:checked").val());
// alert($("
推荐国产工作流引擎嵌入式公式语法解析器-IK Expression
comsci
java 应用服务器 工作 Excel 嵌入式
这个开源软件包是国内的一位高手自行研制开发的,正如他所说的一样,我觉得它可以使一个工作流引擎上一个台阶。。。。。。欢迎大家使用,并提出意见和建议。。。
----------转帖---------------------------------------------------
IK Expression是一个开源的(OpenSource),可扩展的(Extensible),基于java语言
关于系统中使用多个PropertyPlaceholderConfigurer的配置及PropertyOverrideConfigurer
daizj
spring
1、PropertyPlaceholderConfigurer
Spring中PropertyPlaceholderConfigurer这个类,它是用来解析Java Properties属性文件值,并提供在spring配置期间替换使用属性值。接下来让我们逐渐的深入其配置。
基本的使用方法是:(1)
<bean id="propertyConfigurerForWZ&q
二叉树:二叉搜索树
dieslrae
二叉树
所谓二叉树,就是一个节点最多只能有两个子节点,而二叉搜索树就是一个经典并简单的二叉树.规则是一个节点的左子节点一定比自己小,右子节点一定大于等于自己(当然也可以反过来).在树基本平衡的时候插入,搜索和删除速度都很快,时间复杂度为O(logN).但是,如果插入的是有序的数据,那效率就会变成O(N),在这个时候,树其实变成了一个链表.
tree代码:
C语言字符串函数大全
dcj3sjt126com
c function
C语言字符串函数大全
函数名: stpcpy
功 能: 拷贝一个字符串到另一个
用 法: char *stpcpy(char *destin, char *source);
程序例:
#include <stdio.h>
#include <string.h>
int main
友盟统计页面技巧
dcj3sjt126com
技巧
在基类调用就可以了, 基类ViewController示例代码
-(void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
[MobClick beginLogPageView:[NSString stringWithFormat:@"%@",self.class]];
window下在同一台机器上安装多个版本jdk,修改环境变量不生效问题处理办法
flyvszhb
java jdk
window下在同一台机器上安装多个版本jdk,修改环境变量不生效问题处理办法
本机已经安装了jdk1.7,而比较早期的项目需要依赖jdk1.6,于是同时在本机安装了jdk1.6和jdk1.7.
安装jdk1.6前,执行java -version得到
C:\Users\liuxiang2>java -version
java version "1.7.0_21&quo
Java在创建子类对象的同时会不会创建父类对象
happyqing
java 创建 子类对象 父类对象
1.在thingking in java 的第四版第六章中明确的说了,子类对象中封装了父类对象,
2."When you create an object of the derived class, it contains within it a subobject of the base class. This subobject is the sam
跟我学spring3 目录贴及电子书下载
jinnianshilongnian
spring
一、《跟我学spring3》电子书下载地址:
《跟我学spring3》 (1-7 和 8-13) http://jinnianshilongnian.iteye.com/blog/pdf
跟我学spring3系列 word原版 下载
二、
源代码下载
最新依
第12章 Ajax(上)
onestopweb
Ajax
index.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/
BI and EIM 4.0 at a glance
blueoxygen
BO
http://www.sap.com/corporate-en/press.epx?PressID=14787
有机会研究下EIM家族的两个新产品~~~~
New features of the 4.0 releases of BI and EIM solutions include:
Real-time in-memory computing –
Java线程中yield与join方法的区别
tomcat_oracle
java
长期以来,多线程问题颇为受到面试官的青睐。虽然我个人认为我们当中很少有人能真正获得机会开发复杂的多线程应用(在过去的七年中,我得到了一个机会),但是理解多线程对增加你的信心很有用。之前,我讨论了一个wait()和sleep()方法区别的问题,这一次,我将会讨论join()和yield()方法的区别。坦白的说,实际上我并没有用过其中任何一个方法,所以,如果你感觉有不恰当的地方,请提出讨论。
&nb
android Manifest.xml选项
阿尔萨斯
Manifest
结构
继承关系
public final class Manifest extends Objectjava.lang.Objectandroid.Manifest
内部类
class Manifest.permission权限
class Manifest.permission_group权限组
构造函数
public Manifest () 详细 androi
Oracle实现类split函数的方
zhaoshijie
oracle
关键字:Oracle实现类split函数的方
项目里需要保存结构数据,批量传到后他进行保存,为了减小数据量,子集拼装的格式,使用存储过程进行保存。保存的过程中需要对数据解析。但是oracle没有Java中split类似的函数。从网上找了一个,也补全了一下。
CREATE OR REPLACE TYPE t_split_100 IS TABLE OF VARCHAR2(100);
cr