zoukankan      html  css  js  c++  java
  • 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";
        }
    }
  • 相关阅读:
    *VC编程规范
    C++的va_start() va_end()函数应用(转)
    * C++类的分解,抽象类与纯虚函数的需要性
    *C++中的回调
    *C++中使用接口
    C++模版使用
    *获取mac地址的方法
    *数字——字符之间的转换(转)
    eclipse雕虫小技一:eclipse打开文件目录
    Hibernate升级后注解方式的对象关系映射
  • 原文地址:https://www.cnblogs.com/j-y-s/p/14903282.html
Copyright © 2011-2022 走看看