以上为项目文件
用到的jar包:http://pan.baidu.com/s/1kT1Rsqj
1、
model-User
2、
beans.xml-去哪些包中找annotation;查找相应的实体类
jdbc.properties
log4j.properties
3、
dao-IUserDao;UserDao(加一个@Repository("UserDao"))
model-Pager;UserException;SystemContext(存放分页请求参数)
4、
service-IUserService;UserService(加一个@Service("userService"))
5、
user-servlet.xml
web.xml
6、
web-SystemContextFilter;UserController
细节
@Entity 标注该类为实体类
@Entity
@Table(name="t_user")
public class User {
private int id;
private String username;
private String password;
private String email;
private String nickname; @GeneratedValue
@Id
public int getId() {
return id;
}
第二讲
构建list页面
@Resource和@Service区别
当你需要定义某个类为一个bean,则在这个类的类名前一行使用@Service("XXX"),就相当于讲这个类定义为一个bean,bean名称为XXX;
当需要在某个类中定义一个属性,并且该属性是一个已存在的bean,要为该属性赋值或注入时在该属性上一行使用@Resource(name="xxx"),相当于为该属性注入一个名称为xxx的bean。
分页
导入pager.jar
new webcontent-inc-pager.jsp
WEB-INF-jsp-user-list.jsp
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>用户列表</title>
</head>
<body>
<table width="700" align="center" border="1">
<tr>
<td>用户标识</td><td>用户名</td><td>用户昵称</td><td>用户密码</td><td>用户邮箱</td><td>操作</td>
</tr>
<c:if test="${pagers.total lt 0 }">
<tr>
<td colspan="6">还没有数据</td>
</tr>
</c:if>
<c:if test="${pagers.total gt 0 }">
<c:forEach items="${pagers.datas}" var="u">
<tr>
<td>${u.id}</td><td>${u.username}</td><td>${u.nickname}</td><td>${u.password}</td><td>${u.email}</td><td><a href="">update</a><a href="">delete</a></td>
</tr>
</c:forEach>
<tr>
<td colspan="6">
<jsp:include page="/inc/pager.jsp">
<jsp:param value="users" name="url"/>
<jsp:param value="${pagers.total }" name="items" />
</jsp:include>
</td>
</tr>
</c:if>
</table>
</body>
</html>
sitemesh
导入sitemesh-2.4.jar
加入过滤器
<filter>
<filter-name>sitemesh</filter-name>
<filter-class>com.opensymphony.sitemesh.webapp.SiteMeshFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>sitemesh</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
decorators.xml
<?xml version="1.0" encoding="UTF-8"?> <decorators defaultdir="/WEB-INF/decorators">
<!-- Any urls that are excluded will never be decorated by Sitemesh -->
<excludes>
<pattern>/exclude.jsp</pattern>
<pattern>/exclude/*</pattern>
</excludes> <decorator name="main" page="main.jsp">
<pattern>/*</pattern>
</decorator> </decorators>
在WEB-INF下新建decorators文件夹,里新建main.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://www.opensymphony.com/sitemesh/decorator" prefix="decorator" %>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title><decorator:title default="欢迎使用用户管理系统"/></title>
<link rel="stylesheet" type="text/css" href="<%=request.getContextPath()%>/css/main.css"/>
<decorator:head/>
</head>
<body>
<h1><decorator:title/></h1>
<decorator:body/>
<div align="center" style="width:100%;border-top:1px solid; float:left;margin-top:10px;">
CopyRight@2012-2015<br/>
开发培训教学项目
</div>
</body>
</html>
第三讲
add.jsp 用到的技术都是之前学过的。
连接mysql6,用的connector是mysql-connector-java-5.0.5-bin.jar
show.jsp
update.jsp
delete
第四讲
login.jsp
logout.jsp
总结
springmvc 孔浩:数据存在map中
springmvc 孔浩 hibernate:数据存在数据库中。跟之前的不同之处在于分页,sitemesh。
再做一下分页和sitemesh。