以上为项目文件
用到的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="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。