PageHelper+Layui分页

简述

在做项目的时候,我们经常会用到分页的功能。分页又分为物理分页(每次查询固定条数并显示在页面上)和内存分页(全部查出,然后在前端页面做分页,不推荐使用)。

mybitis分页的话还是比较方便的,可以自己编写sql。这里介绍的是一个分页插件PageHelper,可以和spring集成使用。

其实分页的思路就是通过前端控制两个参数,一个起始值,然后是每页显示的大小数量。把这两个值传递到后端,编写对应的sql把固定条数的数据查询出来,在前端页面显示。支持首页、下一页、上一页、末页、每页显示数量变化、直接跳转到某一页;另外当我们对列表进行删除或者修改某一条信息的时候,希望仍然停留在当前页。

当然自己写也可以,这里推荐使用LayUi的分页模块。

搭建一个spring-springmvc-mybitis项目

背景

平时做项目都是在前人搭建好的项目上进行开发,虽然对框架有了一定的了解,能完成开发任务,可是自己始终没有完整的搭建过ssm框架,并且对一个web项目中所应用的技术没有一个好的认知和总结。因此自己总结了一下,以备以后使用。并希望在以后的学习中,不断完善该文档。

在开发中常见的标签以及作用

在做项目的时候,经常用到一些xml配置文件,一开始我们只是去模仿如何配置,时间久了,就想了解我们使用的这些标签都是什么意思,有什么作用,从现在开始以后就记录下来,一点一点的去了解。

Logback日志框架

简介

logback和log4j是同一个人写的。logback重写了内核,比log4j更加强大,性能更好,因此log4j也可以被logback替代。

slf4j这个jar只是提供了一些接口,供其他日志框架实现。类似于jdbc一样。通俗的讲,slf4j告诉系统,你通过我可以使用任何实现我接口的日志系统。允许最终用户在部署系统时使用其所希望的日子System,只需要更换jar包即可。

因此建议logback和slf4j配合使用.

Security 配置用户数据源

背景

前面我们已经初步了解了Spring Security安全框架,并可以简单使用。但是之前的用户信息我们都是写在配置文件中。如果用户数量比较多了,或者用户信息经常变化,在写到配置文件中就不太现实,下面就讲一下用其他数据源来存储用户信息的情况。

Security自定义表单验证

前面已经初步认识了Security框架,并且做了一个类似于Hello word的例子。当我们没有配置登录界面的时候,Security框架经过验证需要用户登录时,会预编译一个默认的登录界面。今天我们学习一下自定义的登录验证页面。

thymeleaf处理URL连接

URL是Web应用程序模板中的一等公民,而Thymeleaf标准方言具有特殊的语法,@语法:@ {…}

th:href

@语法:@{…}

1
2
3
4
5
6
<!-- 绝对网址-->
<a href="details.html" th:href="@{http://localhost:8080/gtvg/order/details(orderId=${o.id})}">view</a>
<!-- 服务器相对路径 -->
<a href="details.html" th:href="@{/order/details(orderId=${o.id})}">view</a>
<!-- 路径中也可以使用变量模板-->
<a href="details.html" th:href="@{/order/{orderId}/details(orderId=${o.id})}">view</a>

注意:

  1. th:href是一个修饰符属性:一旦处理,它将计算要使用的连接URL,并将该值设置为表情的href属性的值。
  2. URL中的参数也可以用表达式,例如http://localhost:8080/gtvg/order/details(orderId=${o.id}),所需的URL参数编码,thymeleaf也会自动执行。
  3. 如果需要多个参数,可以用逗号隔开@ {/order/process(execId=${execId},execType=’FAST’)}
  4. URL路径中也允许使用变量模板:@{/order/{orderId}/details(orderId=${orderId})}
  5. 以/开头的请求,会自动匹配上下文前缀
  6. th:href属性允许和静态的href属性共存,这样我们可以在浏览器直接打开原型查看效果

与消息语法(#{…})的情况一样,URL基数也可以是计算另一个表达式的结果:

1
2
<a th:href="@{${url}(orderId=${o.id})}">view</a>
<a th:href="@{'/details/'+${user.login}(orderId=${o.id})}">view</a>

thymeleaf标签属性的实际演示

Thymeleaf的主要目标在于提供一种可被浏览器正确显示的、格式良好的模板创建方式,因此也可以用作静态建模。Thymeleaf的模板还可以用作工作原型,Thymeleaf会在运行期替换掉静态值。

bean值替换

当该html作为静态资源的时候,显示张高峰,在运行期间会解析${uname}的值,如果uname没有值的话,会显示空白