项目前的准备: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) 新建实体类entities:Employ和Department (2) 新建Dao: EmployDao 和 Department Dao,使用@Repository注解 ,主要是和数据库进行交互(数据的CRUD操作) (3) 新建Handeler,使用@Controller注解,里面的方法配合使用@RequestMapping(“xxx”)映射请求路径
- 在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中的属性名字一致,并且支持级联数据的表示