SpringBoot项目的实体设计与用户登录实现以及类别分页展示功能
1、实体设计
①、首先要实现用户登录功能就必须要有保存用户信息的实体,创建为User类,类中包括ID,姓名,密码,邮箱等一系列用户应该有的基本元素。
②、不同的用户应该具有不同的权限,所以应该再创建一个保存用户类别的Type类,类中包括用户的信息和其对应的身份信息元素。
③、因为本项目是以新闻web为主体,所以创建一个新闻news类,类中包括标题,内容简介,首图,浏览次数等等一系列基本元素。
2、用户登录的实现
①、创建用户存储接口继承自JpaRepository<User,Long>,定义对用户账号与密码的查找方法头
public interface UserRepository extends JpaRepository<User,Long> { User findByUsernameAndPassword(String username,String password); }
②、在用户服务接口中同样定义一个检测用户账号密码的方法头
User checkUsers(String username, String password);
③、创建实现用户服务接口的方法类,对检测用户账号密码的方法进行实现
@Override public User checkUsers(String username,String password){ return userRepository.findByUsernameAndPassword(username,password); }
④、创建登录控制器实现用户登录逻辑
@Autowired private UserService userService; @GetMapping public String loginPage(){ return "admin/login"; } @PostMapping("/login") public String login(@RequestParam String username, @RequestParam String password, HttpSession session, RedirectAttributes attributes){ User user=userService.checkUsers(username, password); if (user!=null){ user.setPassword(null); session.setAttribute("user",user); return "admin/index"; }else { attributes.addFlashAttribute("message","用户名或密码错误"); return "redirect:/admin"; } } @GetMapping("/logout") public String logout(HttpSession session){ session.removeAttribute("user"); return "redirect:/admin"; }
3、类别分页展示
①、创建继承自JpaRepository<Type,Long>的类别接口,内容暂时为空。
public interface TypeRepository extends JpaRepository<Type,Long> { }
②、在type服务接口中定义一个进行分页展示的方法头
Page<Type> listType(Pageable pageable);
③、创建实现type服务接口的方法类,实现分页展示
@Autowired private TypeRepository typeRepository; @Override public Page<Type> listType(Pageable pageable) { return typeRepository.findAll(pageable); }
④、创建type控制器实现分页逻辑
@Autowired private TypeService typeService; @RequestMapping("/types") public String type(@PageableDefault(size = 3,sort = {"id"},direction = Sort.Direction.DESC) Pageable pageable, Model model){ model.addAttribute("page",typeService.listType(pageable)); return "admin/types"; }

浙公网安备 33010602011771号