Thymeleaf 模板引擎的使用

Thymeleaf 模板引擎的使用,第1张

模板引擎和前端框架的区别是什么?

1JSP、Velocity、Thymeleaf等这是模板引擎,Jquery、Vue等这是前端框架。so,它们不一样。

2缓存模板结构,在数据层 *** du作完直接套用模板输出到客户端界面中,减少dom *** 作的异常、减少拼接html的痛苦、减少各浏览器下dom *** 作的延迟差异 。这是模板引擎干的事情。

3前端框架,提升开发效率,dom加载效率等。

为何选Thymeleaf,而抛弃了别的模板引擎比如JSP

1SpringBoot默认整合Thymeleaf,不需要任何配置直接整合成功,打jar包发布不需要做任何配置。

2Thymeleaf相对于其他的模板引擎(如:Freemaker、velocity),有强大的工具支持。

3相对于Jsp页面,执行效率高。

记录一个错误,是SpringBoot 和thumeleaf版本冲突的问题,这里需要把上面的切换版本配置改改

错误: An attempt was made to call the method orgthymeleafspring5SpringTemplateEnginesetRenderHiddenMarkersBeforeCheckboxes(Z)V but it does not exist Its class, orgthymeleafspring5SpringTemplateEngine, is available from the following locations

写一个小的测试,在Controller中添加一个访问,并在template目录下写个successhtml

使用 >

使用SpringBoot Security进行登录验证,可以结合具体的业务需求来使用。在

SpringBoot Security前后端分离,登录退出等返回json

一文中,描述了前后端分离的情况下,如何进行登录验证和提示错误信息的。现在针对自定义的登录页面,能够精确地提示错误信息,做一个简单的演示demo。

本文使用的SpringBoot版本是214RELEASE,下面直接进入使用阶段。

加上这个架包,重启项目后,整个项目就配置了登录拦截和验证。

不输入用户名和密码,直接点击登录时,会有提示信息,输入框的颜色还会变红。查看源码,可以发现,架包默认的登录页面提交方式为表单提交,method为post,并且默认是开启csrf的,在表单里自动生成了一个隐藏域,防止跨域提交,确保请求的安全性。

输入错误的用户名或密码,可以看到页面进行了跳转,跳转后的页面又回到了登录页,只是url地址后面多了一个参数,页面提示错误信息。

从页面源码,我们可以获得以下几个方面的信息:

如果页面是我们自己自定义的,如果要使用默认的过滤器获取登录信息,则必须使用post方式进行提交,如果使用ajax json的方式进行提交,则获取不到参数。

接下来自定义一个登录页面,为了快速构建登录页面,这里使用了thymeleaf模板。

在这个配置中,对登录页面进行了设置,设置使用自定义的登录页面,在Controller需要添加对应的页面渲染。

一个很丑的登录页面,这不是重点。重点是,登录名和密码正确时,页面可以正确的跳转,输入错误时,可以在登录页面进行信息提示。

在MyCustomUserService类中,我们设置了用户名为admin,密码为123456;输入其他的用户名称时,提示用户不存在;不输入用户名称,提示用户不能为空;密码不是123456时,提示密码错误;输入admin,123456时,页面前往index页面,下面进行验证。

  th:each 属性支持的迭代类型有很多,最常见的就是数组、List、Set 和 Map,其中数组、List、Set 的迭代方法类似,而迭代 Map 时,会得到一个 javautilMapEntry 对象。

Java后台生成一个 Map 对象,传到前台

Thymeleaf 遍历 map 集合,取出来的是一个 Entry,可以直接调用 Entry 的 key 或者 value 来取得键值。

public class testOne {

public static void main(String[] args) {

CrowdfIe c = new CrowdfIe();

List<StoreIncome> sList= new ArrayList<StoreIncome>();

for(int i=0;i<10;i++){

StoreIncome s = new StoreIncome();

ssetDayIncome(BigDecimalvalueOf(i));

ssetAmount(i);

sListadd(s);

}

csetStoreIncome(sList);

int num=0;

BigDecimal num2=BigDecimalvalueOf(0);

for(StoreIncome a:cgetStoreIncome()){

num+=agetAmount();

num2=num2add(agetDayIncome());

}

Systemoutprintln(num);

Systemoutprintln(num2);

}

}

那是一定的。@RestController=@Controller+@ResponseBody,函数返回值会被当成responsebody来处理,因此如果需要返回页面,需要使用@Controller。

以上就是关于Thymeleaf 模板引擎的使用全部的内容,包括:Thymeleaf 模板引擎的使用、用thymeleaf用标签给页面select下拉框赋值怎么实现、SpringBoot Security 整合thymeleaf模板自定义登录页面,按需提示错误信息等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9780182.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存