SpringMVC实现员工信息的增删改查
来源:互联网 发布:协方差矩阵半正定那么 编辑:程序博客网 时间:2024/05/01 05:41
创建一个SpringMVC的动态web工程要注意的事项
1.配置web.xml文件
<!--向服务器注册前端控制器! --><servlet><!--DispatcherServlet指的是SpringMVC的前端控制器!,给服务器使用,创建servlet对象! --><servlet-name>springDispatcherServlet</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><!-- 初始化参数contextConfigLocation用于指定SpringMVC配置文件的路径以及名称 --><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:springmvc.xml</param-value></init-param><load-on-startup>1</load-on-startup><!-- 数字0或者大于0的数字表示的是:在服务器启动的时候创建Servlet对象,而不是第一次访问的时候创建小于0的数字指的是:在第一次访问的时候创建Servlet对象.在数字大于O的情况下,数字越小,优先级越高! --></servlet><!-- Map all requests to the DispatcherServlet for handling --><servlet-mapping> <!-- 用 servlet-mapping指定请求映射的路径--><servlet-name>springDispatcherServlet</servlet-name><url-pattern>/</url-pattern> <!-- 用url-pattern指定拦截 的请求路径! --></servlet-mapping><!-- 解决乱码问题,注意要将解决乱码的过滤器放在所有过滤器之前,否则不能解决乱码问题 --><filter><filter-name>characterEncodingFilter</filter-name><filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class><init-param><param-name>encoding</param-name><param-value>UTF-8</param-value></init-param> </filter> <filter-mapping> <filter-name>characterEncodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <!-- 该过滤器用于将POST请求转换为PUT、DELETE请求 --> <filter><filter-name>hiddenHttpMethodFilter</filter-name><filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class></filter><filter-mapping><filter-name>hiddenHttpMethodFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping>2.配置springmvc.xml文件
<!-- 用于扫描com.neuedu下的所有带@Controller注解的类 --><context:component-scan base-package="com.neuedu"></context:component-scan> <!-- 用于简化@Requestmapping注解方法中返回界面; --> <!--InternalResourceViewResolvers 是视图解析器 ,它会将逻辑视图转换成实际的物理视图,做一个转发操作!也就是说具体步骤:prefix + 方法的返回值 + suffix--><!-- /WEB-INF/views/success.jsp --><bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="prefix" value="/WEB-INF/view/"></property><property name="suffix" value=".jsp"></property></bean>
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中的代码:
<body><form action="" method="post"> <!-- 用于将POST请求转换为DELETE请求 --><input type="hidden" name="_method" value="delete"/></form><c:if test=" ${ empty list}"><h2 align="center">没有员工信息</h2></c:if><c:if test="${!empty list }"><h2 align="center">员工信息展示</h2><table border="1" cellpadding="10" align="center" cellspacing="0"><thead><th>姓名</th><th>Email</th><th>Gender</th><th>部门</th><th>修改</th><th>删除</th></thead><tbody><c:forEach items="${list}" var="list"><tr><td>${list.lastName }</td><td>${list.email}</td><td>${list.gender==0?"男":"女"}</td><td>${list.department.departmentName } </td><td><a href="${pageContext.request.contextPath}/update/${list.id}" >修改</a></td><td><a href="${pageContext.request.contextPath}/delete/${list.id}" class="del">删除</a></td></tr></c:forEach><tr><td colspan="6" align="center"><a href="${pageContext.request.contextPath}/insert">添加</a></td></tr></tbody></table></c:if></body>
注意:代码中用到了JSTL标签,不要忘记引入标签
效果图:
2.删除员工信息
点击删除超链接,要转到delete方法中,要携带用户id,这样才能按id删除用户,这里用的是REST风格,把参数id放到路径中;我们在删除时要将POST请求转换为DELETE请求,通过一个表单设置一个隐藏域来设置DELETE,然后进行提交;这里删除超链接是在循环中的,我们可以通过用一个class类用jQuery进行提交。
在list.jsp 加入的代码
<script type="text/javascript" src="${pageContext.request.contextPath }/script/jquery-1.9.1.min.js"></script><script>$(function(){$(".del").click(function(){var url=$(this).attr("href");alert(url);$("form").attr("action",url).submit();return false;});});</script>
注意:这里引入js静态文件,要配置一下springmvc.xml,否则不能找到js文件
SpringMVC处理静态资源【导入js文件】:
1.为什么出现这样的问题:
优雅的REST风格的资源URL不希望带.html或.do等后缀,若将DispatcherServlet请求映射配置为/,
则SpringMVC将捕获WEB容器的所有请求,包括静态资源的请求,SpringMVC会将他们当成一个普通请求处理,因此找不到对应处理器将导致错误。
2.解决:在SpringMVC的配置文件中配置<mvc:default-servlet-handler><mvc:annotation-driven></mvc:annotation-driven>
进入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标签,这样可以信息回显,
<body><form:form action="${pageContext.request.contextPath}/insertemp" method="POST" modelAttribute="employee"><c:if test="${empty employee.id}">姓名:<form:input path="lastName" /><br></c:if><c:if test="${!empty employee.id }"><%-- 姓名:<form:input path="lastName" readonly="true"/><br> --%><input type="hidden" name="_method" value="put"/><form:hidden path="id"/></c:if> Email:<form:input path="email" /><br> <%Map<String,Object> map=new HashMap<>();map.put("0", "男");map.put("1","女");request.setAttribute("map", map);%>Gender<form:radiobuttons path="gender" items="${map}"/><br>部门:<form:select path="department.id" items="${department}" itemLabel="departmentName" itemValue="id"/><br><input type="submit" value="提交"></form:form></body>注意:不要忘记引入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)
@ModelAttributepublic void getStu(@RequestParam(value="id",required=false) Integer id,Map<String, Object> map){if(id!=null){Employee employee = employeedao.get(id);map.put("employee", employee);}}@ModelAttribute注解用于修饰方法,这个@ModelAttribute注解修饰的方法在我们每次请求目标方法之前都会被执行一次!
- SpringMVC实现员工信息的增删改查
- 基于SpringMVC的Restful风格的增删改查--①查找所有员工信息
- 基于SpringMVC的Restful风格的增删改查--③删除员工信息
- 基于SpringMVC的Restful风格的增删改查--④更新员工信息
- 基于SpringMVC的Restful风格的增删改查--②增加员工信息
- Springmvc+mybatis案列 2(实现员工增删改查的操作,工具myeclipse)
- 利用List集合写员工信息的增删改查
- 员工管理-登陆及增删改查功能的实现
- Java实现AD 部门和员工的增删改查
- springmvc+mybatis+maven+junit实现网页的增删查改
- 使用springMvc+easyui+mysql实现简单的增删改查
- mybatis-springmvc+mybatis实现增删改查
- SpringMVC + Hibernate实现增删改查
- 用javascript实现信息的增删改查
- Struts2+JSP+JDBC实现学生信息的增删改查
- 文件映射实现对文件信息的增删改查
- 员工案例增删改查
- SpringMVC+Mybatis整合的增删改查
- OSG 动画系统作用对象 类图
- 学习Linux(red hat)基础知识框架
- 学习Java第12天
- ATS中action调度分析
- 作业
- SpringMVC实现员工信息的增删改查
- java Mac 版NetBeans 的快捷键用法 及如何调出项目栏
- NYOJ5Binary String Matching(find函数用法)
- BZOJ1606: [Usaco2008 Dec]Hay For Sale 购买干草
- 2017阿里编程测试题
- my eclipse2014破解步骤(亲测可用)
- 博弈牌的玩法
- HDU6154(找规律)
- java 调试项目和运行项目的区别