
success:function(data){ //如果ajax的dataType为json则忽略这一步 var json = eval("("+ data +")"); //这里的docs有多个,对应的需要循环取出,这里只取出了第1个,索引从0开始 //如果无误的话,值应为33484 alert(jsonresponsedocs[0]index);}
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);
}
}
使用SpringBoot Security进行登录验证,可以结合具体的业务需求来使用。在
SpringBoot Security前后端分离,登录退出等返回json
一文中,描述了前后端分离的情况下,如何进行登录验证和提示错误信息的。现在针对自定义的登录页面,能够精确地提示错误信息,做一个简单的演示demo。
本文使用的SpringBoot版本是214RELEASE,下面直接进入使用阶段。
加上这个架包,重启项目后,整个项目就配置了登录拦截和验证。
不输入用户名和密码,直接点击登录时,会有提示信息,输入框的颜色还会变红。查看源码,可以发现,架包默认的登录页面提交方式为表单提交,method为post,并且默认是开启csrf的,在表单里自动生成了一个隐藏域,防止跨域提交,确保请求的安全性。
输入错误的用户名或密码,可以看到页面进行了跳转,跳转后的页面又回到了登录页,只是url地址后面多了一个参数,页面提示错误信息。
从页面源码,我们可以获得以下几个方面的信息:
如果页面是我们自己自定义的,如果要使用默认的过滤器获取登录信息,则必须使用post方式进行提交,如果使用ajax json的方式进行提交,则获取不到参数。
接下来自定义一个登录页面,为了快速构建登录页面,这里使用了thymeleaf模板。
在这个配置中,对登录页面进行了设置,设置使用自定义的登录页面,在Controller需要添加对应的页面渲染。
一个很丑的登录页面,这不是重点。重点是,登录名和密码正确时,页面可以正确的跳转,输入错误时,可以在登录页面进行信息提示。
在MyCustomUserService类中,我们设置了用户名为admin,密码为123456;输入其他的用户名称时,提示用户不存在;不输入用户名称,提示用户不能为空;密码不是123456时,提示密码错误;输入admin,123456时,页面前往index页面,下面进行验证。
模板引擎这个词,咋听起来,有点高大上的意味。
实际上,模板引擎是非常平易近人的技术。譬如大家可能都比较熟悉的 JSP ,就是一种比较典型的模板引擎。
当浏览器将请求抛给控制器,控制器处理好数据后,就跳转 JSP 等模板引擎页面。注意在跳转的同时,还会将数据组装好,也交给模板引擎处理。
模板引擎会根据数据,和模板引擎的规则,动态生成 HTML 页面,最后返回给浏览器显示。
我们使用 Spring Boot 开发 Web 项目,大体上有两种方式。
第一种方式,是后端服务化的方式,也是当前的主流方式。前端是静态的 HTML 页面,通过 Ajax 请求 Spring Boot 的后端接口。 Spring Boot 返回数据一般采用 JSON 格式,前端接收后将数据显示。
第二种方式,是采取模板引擎的方式。前端的请求,到达 Spring Boot 的控制器后,控制器处理请求,然后将返回数据交给模板引擎。模板引擎负责根据数据生成 HTML 页面,最后将 HTML 返回给浏览器。
我个人比较推荐第一种方式,说一下该方式的几个优点:
本篇是讲模板引擎,也得说说模板引擎的优点,王婆卖瓜不能光夸草莓啊。模板引擎开发的页面,对搜索引擎 SEO 比较友好;还有就是简单的页面,如果用模板引擎开发速度比较快,毕竟模板化的方法,目的就是减少重复提高效率。
Spring Boot 支持的模板引擎种类很多,常见的有 FreeMarker 、 Thymeleaf 、 JSP 。
因为这些模板引擎使用的用户都不少,所以我们逐一介绍下其实现过程。
至于孰优孰劣,请各位看官自行评价。正所谓:尺有所短,寸有所长,各取所爱,万物生长!
本篇我们开发一个商品浏览项目实例。
此处说一个我个人的经验:在做一个项目或一个模块的时候,不要一开始就动手写代码,最好是谋定而后动。
我们作为程序员,实际上是整个程序世界的总指挥。应该先整体规划,再实现局部。这种总分型的开发方法便于我们理顺思路,提高编码效率!
好的,我们来思考下,实现商品浏览项目实例的整体流程:
整体流程
可以看到,我们是先建立了控制器方法和页面,再去实现其中的具体细节。这样可以让我们的思维保持连贯性和整体性,在做一些页面和方法较多的项目时,会感觉更加顺畅。
我们按整体流程,使用 FreeMarker 模板引擎,来实现商品浏览功能。
使用 Spring Initializr 创建项目,Spring Boot 版本选择 225 , Group 为 comimooc , Artifact 为 spring-boot-freemarker ,生成项目后导入 Eclipse 开发环境。
引入 Web 项目及 FreeMarker 模板相关的依赖项,代码如下:
实例:
创建控制器类,由于是商品相关的控制器,所以命名为 GoodsController ,代码如下:
实例:
我们具体解释下该类的作用。
我们 resource/templates 目录下新建商品页面 goodsftl ,先不必实现具体功能,代码如下:
实例:
此时我们启动项目,然后访问 >
一、通用的thymeleaf模板引擎通过returnmodel和view获取后台返回的数据。项目中的pomxml文件引用了与thymeleaf相关的包。
二、在相应的controller方法中设置要返回的数据。
三、在HTML页面上引用thymeleaf标记。
四、引用controller在HTML标记中返回的数据。
五、返回的controller可以在JS中获取。
以上就是关于thymeleaf中可以使用ajax动态获取数据吗全部的内容,包括:thymeleaf中可以使用ajax动态获取数据吗、thymeleaf将一个集合中对象的两个属性值的积求和、SpringBoot Security 整合thymeleaf模板自定义登录页面,按需提示错误信息等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)