SpringBoot自学第7天——thymeleaf+拦截器写好网页登陆功能

上一章

SpringBoot自学第6天——凡死了,爬了模板之家的会员付费精品网站模板



前言

在这里插入图片描述

视频中有些问题,勉强算解决了,但进度只有六个视频。lombok里的@Slf4j注解还挺好用的,建议使用。
网页用的雷神的网页(昨天的文章里面有链接),按部就班一向是最不用动脑筋的。


一、修改网页成thymeleaf格式

项目链接放最后,直接自己对照着看,过程的话雷神视频里有。

1. 公共页写法

head标签里的引用放进公共页head中,并且将链接改成th:href或者th:src这种后台注入的模板引擎格式。
分块引用时可以添加div块元素来封装,然后给div加上id属性或者th:fragment属性

2. 引用方法

th:insertth:includeth:replace三种引用方式,一般用replace即可

区别
th:include:加载模板的内容: 读取加载节点的内容(不含节点名称),替换div内容
th:replace:替换当前标签为模板中的标签,加载的节点会整个替换掉加载他的div
th:insert:将模板内容直接插入到当前标签内

调用方式:

  1. 如果在同一目录下,公共页名字为:common.html,引用的fragment名为foot则引用方式为:<div th:replace="common::foot"/>
  2. 如果公共页在common目录下名为common.html,则引用方法为:<div th:replace="common/common::foot"/>
  3. 如果需要引用的fragement属性处于当前页面下,则可以直接通过省略页面名来获取公共片段:<div th:replace="::foot"/>
  4. 如果要加载整个页面,而不是某个fragment片段,可以直接写页面相对路径/文件名例如:<div th:replace="commont"/> 或者 <div th:replace="common/common"/>
  5. 如果引用的片段没有fragment属性,而只有id,则可以通过:<div th:replace="common::#id属性"/>(类似于有fragment的写法,只需属性前面(双冒号后面)加井号即可)

3. th:each高级用法

在这里插入图片描述

<!--基础用法-->
<tbody>
    <tr th:each="user:${users}">
        <td th:text="${user.username}"></td>
        <td th:text="${user.password}"></td>
    </tr>
</tbody>

二、拦截器用法步骤

1.创建一个拦截器类,继承于HandlerInterceptor

继承了拦截器类后就可以重写里面的三个函数了:

@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
	//do something 拦截前要做的事情
    return false;
}

@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
//do something 拦截通过时的事情 这里可以在请求到达响应的响应函数前,改网页的请求参数,返回值等
}

@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
    //请求被响应后要干的事情,我也不知道能干什么,之前的知识都忘了
}

2. 修改MyConfig配置,添加一个拦截器

代码如下(示例):

//addPathPatterns函数是添加拦截的路径
//excludePathPatterns函数是抛弃拦截的路径(不拦截的路径)
@Configuration
public class MyConfig implements WebMvcConfigurer {

    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(new LoginIntercepter())
                .addPathPatterns("/**")
                .excludePathPatterns("/","/login","/login.html","/css/**","/fonts/**","/images/**","/js/**","/error/**","/favicon.ico");
    }
}

登陆功能的业务逻辑就不在这里写了,都比较简单,更何况还没整合数据库。

总结

修改网页浪费时间还很无聊,还是写业务逻辑的时候比较有意思。
我通过IDEA来初始化springboot项目模板,总是请求超时,唉,只能去网页再下载一次模板了。

gitee项目地址:SpringBoot自学第7天——thymeleaf+拦截器写好网页登陆功能

报错请检查lombok插件,并删除项目缓存,重新加载索引,清缓存的方式:file->invalidate->勾选第1个选项->确认。

下一章

SpringBoot自学第8天——文件上传、异常处理、Druid数据源

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值