模板引擎和前端框架的区别是什么?
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模板自定义登录页面,按需提示错误信息等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)