springBoot学习笔记-11-登录功能实现


登录功能实现.

1、修改表单.

2、编写LoginController.

@Controller
public class LoginController {

    @PostMapping("/user/login")
    public String login(@RequestParam("username") String username, @RequestParam("password") String password, Model model){
        if (!StringUtils.isEmpty(username) && username.equals("liuyou")){
            return "redirect:/main.html";
        }
        model.addAttribute("msg","用户名或密码错误!");
        return "index";
    }
}
@Configuration
public class MyMvcConfig implements WebMvcConfigurer {

    @Bean
    public LocaleResolver localeResolver(){
        return new MyLocaleResolver();
    }

    @Override
    public void addViewControllers(ViewControllerRegistry registry) {
        // 视图跳转
        registry.addViewController("/index.html").setViewName("index");
        registry.addViewController("/main.html").setViewName("dashboard");
    }
}

3、结果展示.

补充.

伪造的数据表(Map).

public class DepartmentDao {

    //模拟数据表(事先存在的 -- static)  <索引, 记录>
    private static Map<Integer, Department> departments = null;

    static {
        departments = new HashMap<>();

        departments.put(101, new Department(101,"教学部"));
        departments.put(102, new Department(102,"市场部"));
        departments.put(103, new Department(103,"教研部"));
        departments.put(104, new Department(104,"运营部"));
        departments.put(105, new Department(105,"后勤部"));
    }

    // 以下 是 dao的操作 只是没有数据库的连接 和 释放

    // 获取所有部门信息
    public Collection<Department> getDepartments(){
        return departments.values();
    }

    // 通过id获取部门
    public Department getDepartmentById(Integer id){
        return departments.get(id);
    }
}
public class EmployeeDao {
    //模拟数据表(事先存在的 -- static)  <索引, 记录>
    private static Map<Integer, Employee> employees = null;

    @Autowired
    private DepartmentDao departmentDao;

    // 主键自增
    private static Integer initId = 6;


    static {
        employees = new HashMap<>();

        employees.put(1, new Employee(1,"AA","123@qq.com",1,new Date(),new Department(101,"教学部")));
        employees.put(2, new Employee(2,"BB","345@qq.com",0,new Date(),new Department(102,"市场部")));
        employees.put(3, new Employee(3,"CC","234@qq.com",1,new Date(),new Department(103,"教研部")));
        employees.put(4, new Employee(4,"DD","456@qq.com",0,new Date(),new Department(104,"运营部")));
        employees.put(5, new Employee(5,"EE","146@qq.com",1,new Date(),new Department(105,"后勤部")));
    }

    // 以下 是 dao的操作 只是没有数据库的连接 和 释放

    // 获取所有员工信息
    public Collection<Employee> getEmployees(){
        return employees.values();
    }

    // 通过id获取员工
    public Employee getEmployeeById(Integer id){
        return employees.get(id);
    }

    // 添加 一个员工
    public void add(Employee employee){
        if (employee.getId() == null) {
            employee.setId(initId++);
        }
        // 外键
        employee.setDepartment(departmentDao.getDepartmentById(employee.getDepartment().getId()));

        employees.put(employee.getId(),employee);
    }

    // 删除 一个员工
    public void delete(Integer id){
        employees.remove(id);
    }
}

实体类.

需要安装lombok插件,及依赖

Department实体类

@Data
@NoArgsConstructor
@AllArgsConstructor
public class Department implements Serializable {
    private static final long serialVersionUID = 6619420117724195L;

    private Integer id;
    private String departmentName;
}

Employee实体类

@Data
@NoArgsConstructor
@AllArgsConstructor
public class Employee implements Serializable {
    private static final long serialVersionUID = -5357243432996969444L;

    private Integer id;
    private String lastName;
    private String email;
    private Integer gender; // 0 : 女 1 : 男
    private Date birth;

    private Department department;
}

文章作者: liuminkai
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 liuminkai !
评论
 上一篇
springBoot学习笔记-12-登录拦截器 springBoot学习笔记-12-登录拦截器
登录拦截器.1、修改LoginController. 2、编写登录拦截器.public class LoginHandlerInterceptor implements HandlerInterceptor{ @Override
2020-09-28
下一篇 
springBoot学习笔记-10-国际化(i18n) springBoot学习笔记-10-国际化(i18n)
国际化(Internationalization,i18n). 必须保证 项目编码为UTF-8 国际化信息配置:MessageSourceAutoConfiguration 国际化请求解释器:AcceptHeaderLocaleResol
2020-09-18
  目录