基于SpringMVC的Restful风格的增删改查--①查找所有员工信息

来源:互联网 发布:服务器开源软件 编辑:程序博客网 时间:2024/05/16 15:49

项目前的准备:1.下载eclipse开放工具,我有的是ME,并且集成了SpringMVC开发的IDE,详见http://jingyan.baidu.com/article/1612d5005fd087e20f1eee10.html
2.jdk的配置,服务器tomcat的配置,语言的配置
开发项目: 1.新建web动态工程,注意要勾选web.xml文件。导入SpringMVC的jar包
2.配置web.xml文件:(1) 配置DispatcherServlet(具有ide的同学,可以alt+/ 进行自动生成,修改:①classpath:xxx.xml②修改url

`<url-pattern>/</url-pattern>`)
   (2) 加入HiddenHttpMethodFilter,
        <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>

主要作用是可以把form表单的post请求,转化为DELETE或者PUT请求(在表单中加入<input type="hidden" name="_method" value="PUT">即可转化)。
3.配置web.xml里面,就是你修改的xxx.xml文件(也可以使用WEB-INF下默认的xxx-Servlet.xml):(1) src下新建xxx.xml(spring bena define file下面),选择 三个namespace,包括bean,context和mvc。
(2) xxx.xml加入自动扫描的包
<context:component-scan base-package="com.bjsxt.www"></context:component-scan>
(3) 加入视图解析器

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" ><property name="prefix" value="/WEB-INF/views/"></property><property name="suffix" value=".jsp"></property></bean> 
  1. 项目框架搭建完成,可以开发项目:(1) 新建实体类entities:Employ和Department (2) 新建Dao: EmployDao 和 Department Dao,使用@Repository注解 ,主要是和数据库进行交互(数据的CRUD操作) (3) 新建Handeler,使用@Controller注解,里面的方法配合使用@RequestMapping(“xxx”)映射请求路径
  2. 在Handeler中新建方法,用来处理显示所有员工信息,使用Map
    @RequestMapping("/testAllEmploy")    public String testListEmploy(Map<String,Object> map){        map.put("employAll", employDao.getAll());        return "list";    }
  6. list页面使用JSTL,对${employDao.getAll()}进行遍历(使用jstl,需要加入standard.jar和jstl.jar并且在jsp页面中引入标签库)
**标签库的引用** <%@  taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

list界面

<body><c:if test=" ${empty requestScope.employAll}">没有員工的数据</c:if><c:if test="${!empty requestScope.employAll}">  <table border="1" cellspacing="0" cellpadding="10">  <tr>    <th>ID</th>    <th>LastName</th>    <th>Email</th>    <th>Gender</th>    <th>Department</th>    <th>Edit</th>    <th>Delete</th>  </tr><c:forEach var="emp" items="${requestScope.employAll}"> <tr>     <td>${emp.id}</td>     <td>${emp.lastName}</td>     <td>${emp.email}</td>     <td>${emp.gender==0?'Male':'Female'}</td>     <td>${emp.department.departmentName}</td>     <td><a href="">Edit</a></td>     <td><a href="">Delete</a></td> </tr></c:forEach></table></c:if></body>

7 .测试:加载项目于tomcat中,点击链接,是否跳转list界面并且显示员工数据信息
8. 自己遇到的问题:(1) 如果handler页面中,需要用到的EmployDao只是定义了一个对象(没有New且,没有加入@Autowired注解),某些方法直接使用,会报错,所以,这就是SpringMVC所谓的IOC(DI)
(2) 使用JSTL页面,不显示数据,也没有报错,怎么处理==》注意:JSTL出错,不会报错。而页面不显 示,有两种原因:
① request域中没有数据【handeler处理的数据,jsp页面获取不到】
② 使用jstl语句出错,一定要和entity中的属性名字一致,并且支持级联数据的表示

1 0