SpringMVC实现员工信息的增删改查

创建一个SpringMVC的动态web工程要注意的事项

1.配置web.xml文件


	
	
		springDispatcherServlet
		org.springframework.web.servlet.DispatcherServlet
		
		
			contextConfigLocation
			classpath:springmvc.xml
		
		1
		
	
	
	            
		springDispatcherServlet
		/   
	
		
	
	
		characterEncodingFilter
		org.springframework.web.filter.CharacterEncodingFilter
		
			encoding
			UTF-8
		
   
  
  	characterEncodingFilter
  	/*
  
  
  
		hiddenHttpMethodFilter
		org.springframework.web.filter.HiddenHttpMethodFilter
	
	
		hiddenHttpMethodFilter
		/*
	

2.配置springmvc.xml文件


	
     
     
			
	
		
		
	

3.创建controller层下的类,注意要加@Controller注解,这样springmvc.xml文件中才能扫描到。

/**
	 * 我们通过@RequestMapping做请求URL的映射!
	 * @return
	 */
	@RequestMapping("/sayHello")
	public String sayHello(){
		return "/WEB-INF/views/success.jsp";
	}

springMVC实现人员信息的增删改查

1.实现查询所有人员信息,在一个表格中显示出来

通过一个超链接,转到SelectAll方法,在方法中查出所有的员工信息,用键值对方式把信息转到一个页面上;

	@RequestMapping(value="/SelectAll")
	public ModelAndView SelectAll(){
		ModelAndView mv=new ModelAndView();
		mv.setViewName("list");
		mv.addObject("list", employeedao.getAll());
		return mv;
	}
在显示页面把所有的员工信息显示到一个表格中;

list.jsp中的代码:


	

没有员工信息

员工信息展示

姓名 Email Gender 部门 修改 删除
${list.lastName } ${list.email} ${list.gender==0?"男":"女"} ${list.department.departmentName } 修改 删除
添加

注意:代码中用到了JSTL标签,不要忘记引入标签

效果图:

                                                          SpringMVC实现员工信息的增删改查_第1张图片

2.删除员工信息

点击删除超链接,要转到delete方法中,要携带用户id,这样才能按id删除用户,这里用的是REST风格,把参数id放到路径中;我们在删除时要将POST请求转换为DELETE请求,通过一个表单设置一个隐藏域来设置DELETE,然后进行提交;这里删除超链接是在循环中的,我们可以通过用一个class类用jQuery进行提交。
在list.jsp 加入的代码



注意:这里引入js静态文件,要配置一下springmvc.xml,否则不能找到js文件

SpringMVC处理静态资源【导入js文件】:
1.为什么出现这样的问题:
优雅的REST风格的资源URL不希望带.html或.do等后缀,若将DispatcherServlet请求映射配置为/,
则SpringMVC将捕获WEB容器的所有请求,包括静态资源的请求,SpringMVC会将他们当成一个普通请求处理,因此找不到对应处理器将导致错误。
2.解决:在SpringMVC的配置文件中配置

进入DELETE方法后,通过ID进行删除,然后重定向到SelectAll方法,这样又可以直接进入到显示信息页面

@RequestMapping(value="/delete/{id}",method=RequestMethod.DELETE)
	public String deleteemployee(@PathVariable(value="id") Integer id){
		employeedao.delete(id);	
		return "redirect:/SelectAll";
	}

3.插入员工信息

点击添加链接,会进入insert方法,然后再方法中查找出需要用户选择,不能乱填的信息,通过下拉菜单选择,然后执行完方法,转到insert.jsp页面,(例如部门信息,要把所有部门显示出来,供人选择)

@RequestMapping(value="/insert",method=RequestMethod.GET)
	public ModelAndView insert(){
		ModelAndView mv=new ModelAndView();
		mv.setViewName("insert");
		mv.addObject("department", departmentdao.getDepartments());
		mv.addObject("employee", new Employee());
		return mv;	
	}
进入insert.jsp页面,使用Spring标签,这样可以信息回显,

	
		
			姓名:
<%-- 姓名:
--%>
Email:
<% Map map=new HashMap<>(); map.put("0", "男"); map.put("1","女"); request.setAttribute("map", map); %> Gender
部门:
注意:不要忘记引入Spring标签,path相当于name,值一定要与对象的属性名相同。

<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form" %>
 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>

保存信息后,然后返回显示列表

@RequestMapping(value="/insertemp",method=RequestMethod.PUT)
	public String insertemp(Employee employee){
		employeedao.save(employee);
		return "redirect:/SelectAll";
	}

4.更新用户信息

用户点击修改超链接后,把id传给后台,然后根据id查找这个id的所有信息,然后把信息带到更新页面,用于回显,

@RequestMapping(value="/update/{id}",method=RequestMethod.GET)
	public ModelAndView update(@PathVariable(value="id") Integer id){
		ModelAndView mv=new ModelAndView();
		mv.setViewName("insert");
		mv.addObject("department", departmentdao.getDepartments());
		mv.addObject("employee", employeedao.get(id));	
		return mv;
	}
	@RequestMapping(value="/updateemp",method=RequestMethod.PUT)
	public String updateemp(@ModelAttribute(value="employee")Employee employee){	
		employeedao.save(employee);
		System.out.println("111");
		return "redirect:/SelectAll";
	}
更新页面可以与插入信息页面共用,当有些信息是不能被用户更改时,可以设置隐藏域,表单提交时也会提交隐藏域中的信息,也可以使用@ModelAttribute注解,先查出这个id的所有信息,然后与提交的信息比较,如果有修改,那么就是修改的信息(比如id表单中没传,该用户还会是原先的id,姓名有更改,那么姓名就是表单提交的name)

@ModelAttribute
	public void getStu(@RequestParam(value="id",required=false) Integer id,Map map){
		if(id!=null){
			Employee employee = employeedao.get(id);
			map.put("employee", employee);
		}	
	}
@ModelAttribute注解用于修饰方法,这个@ModelAttribute注解修饰的方法在我们每次请求目标方法之前都会被执行一次!


转载于:https://www.cnblogs.com/mazhitao/p/7424415.html

你可能感兴趣的:(SpringMVC实现员工信息的增删改查)