• 2021年4月16日


    时间:1个小时左右

    代码:200行左右

    博客:1

    学习内容:继续上次的内容扩展写了一些代码

    package com.atguigu.springboot.controller;
    
    import com.atguigu.springboot.dao.DepartmentDao;
    import com.atguigu.springboot.dao.EmployeeDao;
    import com.atguigu.springboot.entities.Department;
    import com.atguigu.springboot.entities.Employee;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Controller;
    import org.springframework.ui.Model;
    import org.springframework.web.bind.annotation.*;
    
    import java.util.Collection;
    
    @Controller
    public class EmployeeController {
        @Autowired
        EmployeeDao employeeDao;
    
        @Autowired
        DepartmentDao departmentDao;
    
        //查询所有员工返回列表页面
        @GetMapping("/emps")
        public String  list(Model model){
            Collection<Employee> employees = employeeDao.getAll();
    
            //放在请求域中
            model.addAttribute("emps",employees);
            // thymeleaf默认就会拼串
            // classpath:/templates/xxxx.html
            return "emp/list";
        }
    
        //来到员工添加页面
        @GetMapping("/emp")
        public String toAddPage(Model model){
            //来到添加页面,查出所有的部门,在页面显示
            Collection<Department> departments = departmentDao.getDepartments();
            model.addAttribute("depts",departments);
            return "emp/add";
        }
    
        //员工添加
        //SpringMVC自动将请求参数和入参对象的属性进行一一绑定;要求请求参数的名字和javaBean入参的对象里面的属性名是一样的
        @PostMapping("/emp")
        public String addEmp(Employee employee){
            //来到员工列表页面
    
            System.out.println("保存的员工信息:"+employee);
            //保存员工
            employeeDao.save(employee);
            // redirect: 表示重定向到一个地址  /代表当前项目路径
            // forward: 表示转发到一个地址
            return "redirect:/emps";
        }
    
        //来到修改页面,查出当前员工,在页面回显
        @GetMapping("/emp/{id}")
        public String toEditPage(@PathVariable("id") Integer id,Model model){
            Employee employee = employeeDao.get(id);
            model.addAttribute("emp",employee);
    
            //页面要显示所有的部门列表
            Collection<Department> departments = departmentDao.getDepartments();
            model.addAttribute("depts",departments);
            //回到修改页面(add是一个修改添加二合一的页面);
            return "emp/add";
        }
    
        //员工修改;需要提交员工id;
        @PutMapping("/emp")
        public String updateEmployee(Employee employee){
            System.out.println("修改的员工数据:"+employee);
            employeeDao.save(employee);
            return "redirect:/emps";
        }
    
        //员工删除
        @DeleteMapping("/emp/{id}")
        public String deleteEmployee(@PathVariable("id") Integer id){
            employeeDao.delete(id);
            return "redirect:/emps";
        }
    
    
    
    }
    package com.atguigu.springboot.controller;
    
    import org.springframework.stereotype.Controller;
    import org.springframework.util.StringUtils;
    import org.springframework.web.bind.annotation.*;
    
    import javax.servlet.http.HttpSession;
    import java.util.Map;
    
    @Controller
    public class LoginController {
    
    //    @DeleteMapping
    //    @PutMapping
    //    @GetMapping
    
        //@RequestMapping(value = "/user/login",method = RequestMethod.POST)
        @PostMapping(value = "/user/login")
        public String login(@RequestParam("username") String username,
                            @RequestParam("password") String password,
                            Map<String,Object> map, HttpSession session){
            if(!StringUtils.isEmpty(username) && "123456".equals(password)){
                //登陆成功,防止表单重复提交,可以重定向到主页
                session.setAttribute("loginUser",username);
                return "redirect:/main.html";
            }else{
                //登陆失败
    
                map.put("msg","用户名密码错误");
                return  "login";
            }
    
        }
    }
    package com.atguigu.springboot.controller;
    
    import com.atguigu.springboot.exception.UserNotExistException;
    import org.springframework.web.bind.annotation.ControllerAdvice;
    import org.springframework.web.bind.annotation.ExceptionHandler;
    import org.springframework.web.bind.annotation.ResponseBody;
    
    import javax.servlet.http.HttpServletRequest;
    import java.util.HashMap;
    import java.util.Map;
    
    @ControllerAdvice
    public class MyExceptionHandler {
    
        //1、浏览器客户端返回的都是json
    //    @ResponseBody
    //    @ExceptionHandler(UserNotExistException.class)
    //    public Map<String,Object> handleException(Exception e){
    //        Map<String,Object> map = new HashMap<>();
    //        map.put("code","user.notexist");
    //        map.put("message",e.getMessage());
    //        return map;
    //    }
        @ExceptionHandler(UserNotExistException.class)
        public String handleException(Exception e, HttpServletRequest request){
            Map<String,Object> map = new HashMap<>();
            //传入我们自己的错误状态码  4xx 5xx
            /**
             * Integer statusCode = (Integer) request
             .getAttribute("javax.servlet.error.status_code");
             */
            request.setAttribute("javax.servlet.error.status_code",500);
            map.put("code","user.notexist");
            map.put("message","用户出错啦");
    
            request.setAttribute("ext",map);
            //转发到/error
            return "forward:/error";
        }
    }
  • 相关阅读:
    开源项目
    [Accessibility] Missing contentDescription attribute on image [可取行]失踪contentDescription属性图像
    Android 布局 中实现适应屏幕大小及组件滚动
    EF 错误记录
    EasyUI 加载时需要显示和隐藏 panel(面板)内容破版问题
    IE 报表缩放后页面破版
    VS 2017 引入nuget 问题
    SSRS 报表显示页面 asp net session丢失或者找不到 asp net session has expired or could not be found()
    log4net 配置
    网站
  • 原文地址:https://www.cnblogs.com/j-y-s/p/14903282.html
Copyright © 2020-2023  润新知