【DAY7】spring boot实现登陆注销,信息分页显示

今天主要是使用springboot实现了网站的登陆注销以及信息的分页显示。
项目包结构如下
1

用户登录

controller层中,UserController实现以下几个方法

    @GetMapping
    public String toLogin() {
        return "admin/login";
    }

    @PostMapping("login")
    public String login(String username, String password, HttpSession session, RedirectAttributes redirectAttributes) {
        User user = userService.checkUser(username, password);
        if(user != null){
            session.setAttribute("user", user);
            return "admin/index";
        }else{
            redirectAttributes.addFlashAttribute("message","用户名和密码错误哦");
            return  "redirect:/admin";
        }
    }

    @GetMapping("logout")
    public String logout(HttpSession session){
        session.removeAttribute("user");
        return "admin/login";
    }

此次持久化使用的是Hibernate(开放源代码的对象关系映射框架),它是基于JPA的框架,JPA由一系列的接口和抽象类构成,是一个标准,而Hibernate就是献县这一些列接口的框架。Hibernate可以自动生成SQL语句,完成持久化相关任务,使开发变得更加方便快捷。比如今天的项目中,使用Hibernate,首先在配置文件application.yml中配置

jpa:
    hibernate:
      ddl-auto: update
    show-sql: true

之后在dao层,只需要继承JpaRepository,再将方法名写出来即可,但是要注意方法名要和参数对应起来哦。

public interface IUserDao extends JpaRepository<User,Long> {

    User findByUsernameAndPassword(String username, String password);
}

这样就可以根据能否查出User对象来判断用户能否登陆成功了。

信息分页

之前在ssm项目的时候,信息分页需要自己写一个PageInfo类,才能实现分页功能,现在不用了,可以使用内置的Pageable来实现

@RequestMapping
    public String list(@PageableDefault(size = 5, sort = {"id"}, direction = Sort.Direction.DESC) Pageable pageable, Model model){
        Page<Type> page = typeService.listType(pageable);
        model.addAttribute("page",page);
        return "admin/types";
    }

在html文件中,对page对象遍历即可显示信息

<tr th:each="type,iterStat:${page.content}">
          <td th:text="${iterStat.count}">1</td>
          <td th:text="${type.name}">刻意练习清单</td>
          <td>
            <a href="#"  class="ui mini teal basic button">编辑</a>
            <a href="#"  class="ui mini red basic button">删除</a>
          </td>
        </tr>
        </tbody>

要实现上下翻页,只需要在HTML中执行如下操作即可

<div class="ui mini pagination menu" th:if="${page.totalPages}>1">
              <a  class="  item"  th:href="@{/admin/types(page=${page.number}-1)}" th:unless="${page.first}">上一页</a>
              <a  class="  item"  th:href="@{/admin/types(page=${page.number}+1)}" th:unless="${page.last}" >下一页</a>
            </div>

同时,这段代码也实现了,在第一页不显示上一页,在最后一页不显示下一页,只有一页时,上一页下一页均不显示。

效果图

登录界面
2
用户名或者密码错误时
3
分页
4
5

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值