接上次Springboot没写完的MVC代码

tech2022-10-29  99

接上次Springboot没写完的MVC代码

控制层

LoginController

@Controller public class LoginController { @Autowired private UserService userService; @RequestMapping("/login") public String login(@RequestParam("username")String username, @RequestParam("password")String password, HttpSession session, Model model){ User user = userService.selectPasswordByName(username, password); if ( user != null){ //登录成功! session.setAttribute("username",user.getUserName()); //登录成功!防止表单重复提交,我们重定向 return "redirect:/main.html"; }else { //登录失败!存放错误信息 model.addAttribute("msg","用户名或密码错误"); return "index"; } } @GetMapping("/user/loginOut") public String loginOut(HttpSession session){ session.invalidate(); return "redirect:/index.html"; } }

EmployeeController

package com.wangqiang.controller; import com.wangqiang.dto.EmployeeDTO; import com.wangqiang.pojo.Department; import com.wangqiang.pojo.Employee; import com.wangqiang.service.DepartmentService; import com.wangqiang.service.EmployeeService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import java.util.Collection; /** * @version : V1.0 * @ClassName: EmploeeController * @Description: TODO * @Auther: wangqiang * @Date: 2020/2/25 21:48 */ @Controller public class EmploeeController { @Autowired private EmployeeService employeeService; @Autowired private DepartmentService departmentService; //查询所有员工,返回列表页面 @GetMapping("/emp") public String list(Model model){ Collection<EmployeeDTO> employees = employeeService.selectAllEmployeeDTO(); // 将结果放在请求中 model.addAttribute("emps",employees); return "emp/list.html"; } //to员工添加页面 @GetMapping("/add") public String toAdd(Model model){ //查出所有的部门,提供选择 Collection<Department> departments = departmentService.selectAllDepartment(); model.addAttribute("departments",departments); return "emp/add.html"; } //员工添加功能,使用post接收 @PostMapping("/add") public String add(Employee employee){ //保存员工信息 employeeService.addEmployee(employee); //回到员工列表页面,可以使用redirect或者forward return "redirect:/emp"; } //to员工修改页面 @GetMapping("/emp/{id}") public String toUpdateEmp(@PathVariable("id") Integer id, Model model){ //根据id查出来员工 Employee employee = employeeService.selectEmployeeById(id); //将员工信息返回页面 model.addAttribute("emp",employee); //查出所有的部门,提供修改选择 Collection<Department> departments = departmentService.selectAllDepartment(); model.addAttribute("departments",departments); return "emp/update.html"; } @PostMapping("/updateEmp") public String updateEmp(Employee employee){ employeeService.updateEmployee(employee); //回到员工列表页面 return "redirect:/emp"; } @GetMapping("/delEmp/{id}") public String deleteEmp(@PathVariable("id")Integer id){ //根据id删除员工 employeeService.deleteEmployee(id); return "redirect:/emp"; } }

拦截器

public class MyHandlerInterceptor implements HandlerInterceptor { @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { Object username = request.getSession().getAttribute("username"); if (username == null){//未登录,返回登录页面 request.setAttribute("msg","没有权限"); request.getRequestDispatcher("/index.html").forward(request,response); return false; }else { //登录,放行 return true; } } }

MVC配置

@Configuration public class MyWebMvcConfig implements WebMvcConfigurer { @Override public void addInterceptors(InterceptorRegistry registry) { //注册拦截器,及拦截请求和要剔除哪些请求! //我们还需要过滤静态资源文件,否则样式显示不出来 registry.addInterceptor(new MyHandlerInterceptor()) .addPathPatterns("/**") .excludePathPatterns("/","/index.html","/login","/css/**","/js/**","/img/**"); } @Override public void addViewControllers(ViewControllerRegistry registry) { registry.addViewController("/").setViewName("index"); registry.addViewController("/index.html").setViewName("index"); registry.addViewController("/main.html").setViewName("main"); } @Bean public LocaleResolver localeResolver(){ return new MyLocaleResolver(); } }
最新回复(0)