ssh(Spring+Spring mvc+hibernate)——EmpController

简介: ssh(Spring+Spring mvc+hibernate)——EmpController
 /**  
* @Title: DeptController.java
* @Package org.action
* @Description: TODO该方法的主要作用:
* @author A18ccms A18ccms_gmail_com  
* @date 2017-12-27 上午10:54:42
* @version V1.0  
*/
package org.action;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;

import org.entity.Dept;
import org.entity.Emp;
import org.service.IDeptService;
import org.service.IEmpService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.propertyeditors.CustomDateEditor;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.WebDataBinder;
import org.springframework.web.bind.annotation.InitBinder;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

import sun.beans.editors.IntEditor;

import com.sun.beans.editors.DoubleEditor;
import com.sun.beans.editors.FloatEditor;
import com.sun.beans.editors.LongEditor;

 /**   
 *    
 * 项目名称:test_ssh_16qn3   
 * 类名称:DeptController   
 * 类描述:   
 * 创建人:Mu Xiongxiong  
 * 创建时间:2017-12-27 上午10:54:42   
 * 修改人:Mu Xiongxiong   
 * 修改时间:2017-12-27 上午10:54:42   
 * 修改备注:   
 * @version    
 *    
 */
@Controller
public class EmpController {

    /**
     * 自动注入Service层
     */
    @Autowired
    private IEmpService empService;

    @Autowired
    private IDeptService deptService;




    @InitBinder    
    public void initBinder(WebDataBinder binder) {    

        binder.registerCustomEditor(Date.class, new CustomDateEditor(new SimpleDateFormat("yyyy-MM-dd"), true)); 
        binder.registerCustomEditor(int.class, new IntEditor());
        binder.registerCustomEditor(long.class, new LongEditor());  
        binder.registerCustomEditor(double.class, new DoubleEditor());  
        binder.registerCustomEditor(float.class, new FloatEditor());  
    }

    /**
     * 
    * @Description: 该方法的主要作用:显示所有的员工
    * @Title: showDept
    * @param  @return 设定文件  
    * @return  返回类型:ModelAndView   
    * @throws
     */
    @RequestMapping(value="showEmp")
    public ModelAndView showDept(){
        ModelAndView modelAndViewContainer = new ModelAndView();
        List<Emp> empList = empService.queryAll();
        modelAndViewContainer.addObject("empList",empList);
        modelAndViewContainer.setViewName("showEmp");
        return modelAndViewContainer;
    }






    /*
    * @Description: 该方法的主要作用:跳转到添加员工页面
    * @Title: saveEntity
    * @param  @param dept
    * @param  @return 设定文件  
    * @return  返回类型:ModelAndView   
    * @throws
     */
    @RequestMapping(value="upSave")
    public ModelAndView upSave(){
        ModelAndView modelAndView = new ModelAndView();
        List<Dept> deptList = deptService.queryAll();
        modelAndView.addObject("deptList", deptList);
        modelAndView.setViewName("saveEmp");
        return modelAndView;
    }


    /*
    * @Description: 该方法的主要作用:添加部门
    * @Title: saveEntity
    * @param  @param dept
    * @param  @return 设定文件  
    * @return  返回类型:ModelAndView   
    * @throws
     */
    @RequestMapping(value="saveEmps")
    public ModelAndView saveEmp(Emp emp){
        emp.setEid(((Long)System.currentTimeMillis()).intValue());//插入编号
        //根据编号查询部门表
        Dept dept = deptService.queryById(emp.getDid());
        emp.setDept(dept);
        empService.saveEntity(emp);
        //跳转到控制器中的getDeptAll方法
        return new ModelAndView("redirect:/showEmp.do");
    }


    /**
     * 
    * @Description: 该方法的主要作用:根据编号查询部门信息
    * @Title: getDeptById
    * @param  @param id
    * @param  @return 设定文件  
    * @return  返回类型:ModelAndView   
    * @throws
     */
    @RequestMapping(value="getEmpById")
    public ModelAndView getEmpById(int id){
        ModelAndView modelAndView = new ModelAndView();
        List<Dept> deptList = deptService.queryAll();
        modelAndView.addObject("emp",empService.queryById(id));
        modelAndView.addObject("deptList", deptList);
        modelAndView.setViewName("updateEmp");
        return modelAndView;
    }


    /**
     * 
    * @Description: 该方法的主要作用:修改部门信息
    * @Title: updateEntity
    * @param  @param dept
    * @param  @return 设定文件  
    * @return  返回类型:ModelAndView   
    * @throws
     */
    @RequestMapping(value = "updateEmp")
    public ModelAndView updateEntity(Emp emp) {
        // 根据编号查询部门表
        Dept dept = deptService.queryById(emp.getDid());
        emp.setDept(dept);
        empService.updateEntity(emp);
        return new ModelAndView("redirect:/showEmp.do");
    }


    /**
     * 
    * @Description: 该方法的主要作用:删除部门
    * @Title: delEntity
    * @param  @param id
    * @param  @return 设定文件  
    * @return  返回类型:ModelAndView   
    * @throws
     */
    @RequestMapping(value="delEmp")
    public ModelAndView delEmp(int id) {
        Emp emp = empService.queryById(id);
        empService.delEntity(emp);
        return new ModelAndView("redirect:/showEmp.do");

    }






}
相关文章
|
13天前
|
设计模式 前端开发 Java
步步深入SpringMvc DispatcherServlet源码掌握springmvc全流程原理
通过对 `DispatcherServlet`源码的深入剖析,我们了解了SpringMVC请求处理的全流程。`DispatcherServlet`作为前端控制器,负责请求的接收和分发,处理器映射和适配负责将请求分派到具体的处理器方法,视图解析器负责生成和渲染视图。理解这些核心组件及其交互原理,有助于开发者更好地使用和扩展SpringMVC框架。
24 4
|
1月前
|
前端开发 Java 开发者
Spring MVC中的请求映射:@RequestMapping注解深度解析
在Spring MVC框架中,`@RequestMapping`注解是实现请求映射的关键,它将HTTP请求映射到相应的处理器方法上。本文将深入探讨`@RequestMapping`注解的工作原理、使用方法以及最佳实践,为开发者提供一份详尽的技术干货。
123 2
|
2月前
|
Java 数据库连接 数据库
让星星⭐月亮告诉你,SSH框架01、Spring概述
Spring是一个轻量级的Java开发框架,旨在简化企业级应用开发。它通过IoC(控制反转)和DI(依赖注入)降低组件间的耦合度,支持AOP(面向切面编程),简化事务管理和数据库操作,并能与多种第三方框架无缝集成,提供灵活的Web层支持,是开发高性能应用的理想选择。
45 1
|
2月前
|
JSON 前端开发 Java
SSM:SpringMVC
本文介绍了SpringMVC的依赖配置、请求参数处理、注解开发、JSON处理、拦截器、文件上传下载以及相关注意事项。首先,需要在`pom.xml`中添加必要的依赖,包括Servlet、JSTL、Spring Web MVC等。接着,在`web.xml`中配置DispatcherServlet,并设置Spring MVC的相关配置,如组件扫描、默认Servlet处理器等。然后,通过`@RequestMapping`等注解处理请求参数,使用`@ResponseBody`返回JSON数据。此外,还介绍了如何创建和配置拦截器、文件上传下载的功能,并强调了JSP文件的放置位置,避免404错误。
|
2月前
|
前端开发 Java 应用服务中间件
【Spring】Spring MVC的项目准备和连接建立
【Spring】Spring MVC的项目准备和连接建立
65 2
|
3月前
|
缓存 前端开发 Java
【Java面试题汇总】Spring,SpringBoot,SpringMVC,Mybatis,JavaWeb篇(2023版)
Soring Boot的起步依赖、启动流程、自动装配、常用的注解、Spring MVC的执行流程、对MVC的理解、RestFull风格、为什么service层要写接口、MyBatis的缓存机制、$和#有什么区别、resultType和resultMap区别、cookie和session的区别是什么?session的工作原理
|
2月前
|
XML 前端开发 Java
Spring,SpringBoot和SpringMVC的关系以及区别 —— 超准确,可当面试题!!!也可供零基础学习
本文阐述了Spring、Spring Boot和Spring MVC的关系与区别,指出Spring是一个轻量级、一站式、模块化的应用程序开发框架,Spring MVC是Spring的一个子框架,专注于Web应用和网络接口开发,而Spring Boot则是对Spring的封装,用于简化Spring应用的开发。
212 0
Spring,SpringBoot和SpringMVC的关系以及区别 —— 超准确,可当面试题!!!也可供零基础学习
|
3月前
|
XML 缓存 前端开发
springMVC02,restful风格,请求转发和重定向
文章介绍了RESTful风格的基本概念和特点,并展示了如何使用SpringMVC实现RESTful风格的请求处理。同时,文章还讨论了SpringMVC中的请求转发和重定向的实现方式,并通过具体代码示例进行了说明。
springMVC02,restful风格,请求转发和重定向
|
4月前
|
Java 数据库连接 Spring
后端框架入门超详细 三部曲 Spring 、SpringMVC、Mybatis、SSM框架整合案例 【爆肝整理五万字】
文章是关于Spring、SpringMVC、Mybatis三个后端框架的超详细入门教程,包括基础知识讲解、代码案例及SSM框架整合的实战应用,旨在帮助读者全面理解并掌握这些框架的使用。
后端框架入门超详细 三部曲 Spring 、SpringMVC、Mybatis、SSM框架整合案例 【爆肝整理五万字】
|
4月前
|
前端开发 应用服务中间件 数据库
SpringMVC入门到实战------八、RESTful案例。SpringMVC+thymeleaf+BootStrap+RestFul实现员工信息的增删改查
这篇文章通过一个具体的项目案例,详细讲解了如何使用SpringMVC、Thymeleaf、Bootstrap以及RESTful风格接口来实现员工信息的增删改查功能。文章提供了项目结构、配置文件、控制器、数据访问对象、实体类和前端页面的完整源码,并展示了实现效果的截图。项目的目的是锻炼使用RESTful风格的接口开发,虽然数据是假数据并未连接数据库,但提供了一个很好的实践机会。文章最后强调了这一章节主要是为了练习RESTful,其他方面暂不考虑。
SpringMVC入门到实战------八、RESTful案例。SpringMVC+thymeleaf+BootStrap+RestFul实现员工信息的增删改查