点我下载工程代码
实体类
Department
package
com.sj.bean;
import java.util.Set;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.Table;
@Entity
@Table(name = " department " ,catalog = " sj " )
public class Department {
private int id;
private String name;
private Set < Employee > sets;
@Id
@Column(name = " id " )
@GeneratedValue(strategy = GenerationType.AUTO)
public int getId() {
return id;
}
public void setId( int id) {
this .id = id;
}
@Column(name = " name " )
public String getName() {
return name;
}
public void setName(String name) {
this .name = name;
}
@OneToMany(mappedBy = " department " ,cascade = CascadeType.ALL)
public Set < Employee > getSets() {
return sets;
}
public void setSets(Set < Employee > sets) {
this .sets = sets;
}
}
Employee
import java.util.Set;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.Table;
@Entity
@Table(name = " department " ,catalog = " sj " )
public class Department {
private int id;
private String name;
private Set < Employee > sets;
@Id
@Column(name = " id " )
@GeneratedValue(strategy = GenerationType.AUTO)
public int getId() {
return id;
}
public void setId( int id) {
this .id = id;
}
@Column(name = " name " )
public String getName() {
return name;
}
public void setName(String name) {
this .name = name;
}
@OneToMany(mappedBy = " department " ,cascade = CascadeType.ALL)
public Set < Employee > getSets() {
return sets;
}
public void setSets(Set < Employee > sets) {
this .sets = sets;
}
}
package
com.sj.bean;
import java.io.Serializable;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
@SuppressWarnings( " serial " )
@Entity
@Table(name = " employee " ,catalog = " sj " )
public class Employee implements Serializable{
private int id;
private String name;
private Department department;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = " id " )
public int getId() {
return id;
}
public void setId( int id) {
this .id = id;
}
@Column(name = " name " )
public String getName() {
return name;
}
public void setName(String name) {
this .name = name;
}
@ManyToOne(cascade = CascadeType.ALL)
@JoinColumn(name = " deptid " )
public Department getDepartment() {
return department;
}
public void setDepartment(Department department) {
this .department = department;
}
}
BaseDAO
import java.io.Serializable;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
@SuppressWarnings( " serial " )
@Entity
@Table(name = " employee " ,catalog = " sj " )
public class Employee implements Serializable{
private int id;
private String name;
private Department department;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = " id " )
public int getId() {
return id;
}
public void setId( int id) {
this .id = id;
}
@Column(name = " name " )
public String getName() {
return name;
}
public void setName(String name) {
this .name = name;
}
@ManyToOne(cascade = CascadeType.ALL)
@JoinColumn(name = " deptid " )
public Department getDepartment() {
return department;
}
public void setDepartment(Department department) {
this .department = department;
}
}
package
com.sj.dao;
import java.util.List;
public interface BaseDAO < T > {
List < T > listAll();
Object findById(Class < T > c, int id);
boolean save(Object object);
boolean update(Object object);
boolean delete(Object object);
}
BaseDAOImpl
import java.util.List;
public interface BaseDAO < T > {
List < T > listAll();
Object findById(Class < T > c, int id);
boolean save(Object object);
boolean update(Object object);
boolean delete(Object object);
}
package
com.sj.dao;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;
import org.springframework.stereotype.Component;
@Component( " baseDAO " )
public class BaseDAOImpl < T > implements BaseDAO < T > {
@PersistenceContext(unitName = " sjPU " )
private EntityManager entityManager;
public boolean delete(Object object) {
try {
entityManager.remove(object);
return true ;
} catch (Exception e) {
e.printStackTrace();
}
return false ;
}
public Object findById(Class < T > c, int id) {
try {
return entityManager.find(c, id);
} catch (Exception e) {
e.printStackTrace();
}
return null ;
}
public boolean save(Object object) {
try {
entityManager.persist(object);
return true ;
} catch (Exception e) {
e.printStackTrace();
}
return false ;
}
public boolean update(Object object) {
try {
entityManager.merge(object);
return true ;
} catch (Exception e) {
e.printStackTrace();
}
return false ;
}
@SuppressWarnings( " unchecked " )
public List < T > listAll() {
try {
Query query = entityManager.createQuery( " from Employee " );
return query.getResultList();
} catch (Exception e) {
e.printStackTrace();
}
return null ;
}
}
BaseService
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;
import org.springframework.stereotype.Component;
@Component( " baseDAO " )
public class BaseDAOImpl < T > implements BaseDAO < T > {
@PersistenceContext(unitName = " sjPU " )
private EntityManager entityManager;
public boolean delete(Object object) {
try {
entityManager.remove(object);
return true ;
} catch (Exception e) {
e.printStackTrace();
}
return false ;
}
public Object findById(Class < T > c, int id) {
try {
return entityManager.find(c, id);
} catch (Exception e) {
e.printStackTrace();
}
return null ;
}
public boolean save(Object object) {
try {
entityManager.persist(object);
return true ;
} catch (Exception e) {
e.printStackTrace();
}
return false ;
}
public boolean update(Object object) {
try {
entityManager.merge(object);
return true ;
} catch (Exception e) {
e.printStackTrace();
}
return false ;
}
@SuppressWarnings( " unchecked " )
public List < T > listAll() {
try {
Query query = entityManager.createQuery( " from Employee " );
return query.getResultList();
} catch (Exception e) {
e.printStackTrace();
}
return null ;
}
}
package
com.sj.service;
import java.util.List;
public interface BaseService < T > {
List < T > listAll();
Object findById(Class < T > c, int id);
boolean save(Object object);
boolean update(Object object);
boolean delete(Object object);
}
BaseServiceImpl
import java.util.List;
public interface BaseService < T > {
List < T > listAll();
Object findById(Class < T > c, int id);
boolean save(Object object);
boolean update(Object object);
boolean delete(Object object);
}
package
com.sj.service;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import com.sj.dao.BaseDAO;
@Component( " baseServiceImpl " )
public class BaseServiceImpl < T > implements BaseService < T > {
@Resource(name = " baseDAO " )
private BaseDAO < T > baseDAO;
public BaseDAO < T > getBaseDAO() {
return baseDAO;
}
public void setBaseDAO(BaseDAO < T > baseDAO) {
this .baseDAO = baseDAO;
}
@Transactional(propagation = Propagation.REQUIRED)
public boolean delete(Object object) {
return baseDAO.delete(object);
}
@Transactional(propagation = Propagation.REQUIRED)
public Object findById(Class < T > c, int id) {
return baseDAO.findById(c, id);
}
@Transactional(propagation = Propagation.REQUIRED)
public List < T > listAll() {
return baseDAO.listAll();
}
@Transactional(propagation = Propagation.REQUIRED)
public boolean save(Object object) {
return baseDAO.save(object);
}
@Transactional(propagation = Propagation.REQUIRED)
public boolean update(Object object) {
return baseDAO.update(object);
}
}
EmployeeAction
import java.util.List;
import javax.annotation.Resource;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import com.sj.dao.BaseDAO;
@Component( " baseServiceImpl " )
public class BaseServiceImpl < T > implements BaseService < T > {
@Resource(name = " baseDAO " )
private BaseDAO < T > baseDAO;
public BaseDAO < T > getBaseDAO() {
return baseDAO;
}
public void setBaseDAO(BaseDAO < T > baseDAO) {
this .baseDAO = baseDAO;
}
@Transactional(propagation = Propagation.REQUIRED)
public boolean delete(Object object) {
return baseDAO.delete(object);
}
@Transactional(propagation = Propagation.REQUIRED)
public Object findById(Class < T > c, int id) {
return baseDAO.findById(c, id);
}
@Transactional(propagation = Propagation.REQUIRED)
public List < T > listAll() {
return baseDAO.listAll();
}
@Transactional(propagation = Propagation.REQUIRED)
public boolean save(Object object) {
return baseDAO.save(object);
}
@Transactional(propagation = Propagation.REQUIRED)
public boolean update(Object object) {
return baseDAO.update(object);
}
}
package
com.sj.action;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;
import com.sj.bean.Employee;
import com.sj.service.BaseService;
@Controller
@RequestMapping( " /employee.action " )
public class EmployeeAction {
@SuppressWarnings( " unchecked " )
@Resource(name = " baseServiceImpl " )
private BaseService service;
@SuppressWarnings( " unchecked " )
@RequestMapping(method = RequestMethod.GET,params = " method=listAll " )
public ModelAndView listAll(){
List < Employee > list = service.listAll();
return new ModelAndView( " list " ).addObject( " list " , list);
}
@ResponseBody
@RequestMapping(params = " method=listOther " )
public String listOther(){
String str = " <font color='red'>HelloWorld</font> " ;
return str;
}
}
TestApp
import java.util.List;
import javax.annotation.Resource;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;
import com.sj.bean.Employee;
import com.sj.service.BaseService;
@Controller
@RequestMapping( " /employee.action " )
public class EmployeeAction {
@SuppressWarnings( " unchecked " )
@Resource(name = " baseServiceImpl " )
private BaseService service;
@SuppressWarnings( " unchecked " )
@RequestMapping(method = RequestMethod.GET,params = " method=listAll " )
public ModelAndView listAll(){
List < Employee > list = service.listAll();
return new ModelAndView( " list " ).addObject( " list " , list);
}
@ResponseBody
@RequestMapping(params = " method=listOther " )
public String listOther(){
String str = " <font color='red'>HelloWorld</font> " ;
return str;
}
}
package
com.sj.test;
import javax.annotation.Resource;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import com.sj.bean.Department;
import com.sj.bean.Employee;
import com.sj.service.BaseService;
@ContextConfiguration(locations = " file:D:\\Program Files\\MyEclipse 8.5-workspace\\sj\\WebRoot\\WEB-INF\\applicationContext.xml " )
@RunWith(SpringJUnit4ClassRunner. class )
public class TestApp {
@SuppressWarnings( " unchecked " )
@Resource(name = " baseServiceImpl " )
BaseService baseService;
@Test
public void save(){
Employee employee = new Employee();
employee.setName( " 张三 " );
Department department = new Department();
department.setName( " 软件测试组 " );
employee.setDepartment(department);
baseService.save(employee);
}
@SuppressWarnings( " unchecked " )
@Test
public void query(){
Employee employee = (Employee) baseService.findById(Employee. class , 2 );
System.out.println(employee.getId() + " \t " + employee.getName() + " \t " + employee.getDepartment().getName());
}
}
applicationContext.xml
import javax.annotation.Resource;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import com.sj.bean.Department;
import com.sj.bean.Employee;
import com.sj.service.BaseService;
@ContextConfiguration(locations = " file:D:\\Program Files\\MyEclipse 8.5-workspace\\sj\\WebRoot\\WEB-INF\\applicationContext.xml " )
@RunWith(SpringJUnit4ClassRunner. class )
public class TestApp {
@SuppressWarnings( " unchecked " )
@Resource(name = " baseServiceImpl " )
BaseService baseService;
@Test
public void save(){
Employee employee = new Employee();
employee.setName( " 张三 " );
Department department = new Department();
department.setName( " 软件测试组 " );
employee.setDepartment(department);
baseService.save(employee);
}
@SuppressWarnings( " unchecked " )
@Test
public void query(){
Employee employee = (Employee) baseService.findById(Employee. class , 2 );
System.out.println(employee.getId() + " \t " + employee.getName() + " \t " + employee.getDepartment().getName());
}
}
<?
xml version
=
"
1.0
"
encoding
=
"
UTF-8
"
?>
< beans xmlns = " http://www.springframework.org/schema/beans "
xmlns:xsi = " http://www.w3.org/2001/XMLSchema-instance "
xmlns:p = " http://www.springframework.org/schema/p "
xmlns:aop = " http://www.springframework.org/schema/aop "
xmlns:tx = " http://www.springframework.org/schema/tx "
xmlns:context = " http://www.springframework.org/schema/context "
xsi:schemaLocation = " http://www.springframework.org/schema/beans
http: // www.springframework.org/schema/beans/spring-beans-3.0.xsd
http: // www.springframework.org/schema/tx
http: // www.springframework.org/schema/tx/spring-tx.xsd
http: // www.springframework.org/schema/aop
http: // www.springframework.org/schema/aop/spring-aop.xsd
http: // www.springframework.org/schema/context
http: // www.springframework.org/schema/context/spring-context.xsd">
< context:annotation - config />
< context:component - scan base - package = " com.sj.* " />
< aop:aspectj - autoproxy />
< tx:annotation - driven transaction - manager = " transactionManager " />
< bean id = " entityManagerFactory " class = " org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean " >
< property name = " persistenceUnitName " value = " sjPU " />
< property name = " persistenceXmlLocation " value = " classpath:META-INF/persistence.xml " ></ property >
</ bean >
< bean id = " transactionManager " class = " org.springframework.orm.jpa.JpaTransactionManager " >
< property name = " entityManagerFactory " ref = " entityManagerFactory " />
</ bean >
</ beans >
dispatcherServlet-servlet.xml
< beans xmlns = " http://www.springframework.org/schema/beans "
xmlns:xsi = " http://www.w3.org/2001/XMLSchema-instance "
xmlns:p = " http://www.springframework.org/schema/p "
xmlns:aop = " http://www.springframework.org/schema/aop "
xmlns:tx = " http://www.springframework.org/schema/tx "
xmlns:context = " http://www.springframework.org/schema/context "
xsi:schemaLocation = " http://www.springframework.org/schema/beans
http: // www.springframework.org/schema/beans/spring-beans-3.0.xsd
http: // www.springframework.org/schema/tx
http: // www.springframework.org/schema/tx/spring-tx.xsd
http: // www.springframework.org/schema/aop
http: // www.springframework.org/schema/aop/spring-aop.xsd
http: // www.springframework.org/schema/context
http: // www.springframework.org/schema/context/spring-context.xsd">
< context:annotation - config />
< context:component - scan base - package = " com.sj.* " />
< aop:aspectj - autoproxy />
< tx:annotation - driven transaction - manager = " transactionManager " />
< bean id = " entityManagerFactory " class = " org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean " >
< property name = " persistenceUnitName " value = " sjPU " />
< property name = " persistenceXmlLocation " value = " classpath:META-INF/persistence.xml " ></ property >
</ bean >
< bean id = " transactionManager " class = " org.springframework.orm.jpa.JpaTransactionManager " >
< property name = " entityManagerFactory " ref = " entityManagerFactory " />
</ bean >
</ beans >
<?
xml version
=
"
1.0
"
encoding
=
"
UTF-8
"
?>
< beans xmlns = " http://www.springframework.org/schema/beans "
xmlns:xsi = " http://www.w3.org/2001/XMLSchema-instance "
xmlns:p = " http://www.springframework.org/schema/p "
xmlns:aop = " http://www.springframework.org/schema/aop "
xmlns:tx = " http://www.springframework.org/schema/tx "
xmlns:context = " http://www.springframework.org/schema/context "
xsi:schemaLocation = " http://www.springframework.org/schema/beans
http: // www.springframework.org/schema/beans/spring-beans-3.0.xsd
http: // www.springframework.org/schema/tx
http: // www.springframework.org/schema/tx/spring-tx.xsd
http: // www.springframework.org/schema/aop
http: // www.springframework.org/schema/aop/spring-aop.xsd
http: // www.springframework.org/schema/context
http: // www.springframework.org/schema/context/spring-context.xsd">
< context:component - scan base - package = " com.sj.action " />
< bean id = " defaultAnnotationHandlerMapping " class = " org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping " />
< bean id = " annotationMethodHandlerAdapter " class = " org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter " >
< property name = " messageConverters " >
< list >
< bean class = " org.springframework.http.converter.StringHttpMessageConverter " >
< property name = " supportedMediaTypes " >
< list >
< value > text / html;charset = utf - 8 </ value >
< value > text / xml </ value >
< value > text / plain </ value >
</ list >
</ property >
</ bean >
</ list >
</ property >
</ bean >
< bean id = " internalResourceViewResolver " class = " org.springframework.web.servlet.view.InternalResourceViewResolver " >
< property name = " suffix " value = " .jsp " ></ property >
< property name = " prefix " value = " / " ></ property >
< property name = " viewClass " value = " org.springframework.web.servlet.view.JstlView " />
</ bean >
</ beans >
web.xml
< beans xmlns = " http://www.springframework.org/schema/beans "
xmlns:xsi = " http://www.w3.org/2001/XMLSchema-instance "
xmlns:p = " http://www.springframework.org/schema/p "
xmlns:aop = " http://www.springframework.org/schema/aop "
xmlns:tx = " http://www.springframework.org/schema/tx "
xmlns:context = " http://www.springframework.org/schema/context "
xsi:schemaLocation = " http://www.springframework.org/schema/beans
http: // www.springframework.org/schema/beans/spring-beans-3.0.xsd
http: // www.springframework.org/schema/tx
http: // www.springframework.org/schema/tx/spring-tx.xsd
http: // www.springframework.org/schema/aop
http: // www.springframework.org/schema/aop/spring-aop.xsd
http: // www.springframework.org/schema/context
http: // www.springframework.org/schema/context/spring-context.xsd">
< context:component - scan base - package = " com.sj.action " />
< bean id = " defaultAnnotationHandlerMapping " class = " org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping " />
< bean id = " annotationMethodHandlerAdapter " class = " org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter " >
< property name = " messageConverters " >
< list >
< bean class = " org.springframework.http.converter.StringHttpMessageConverter " >
< property name = " supportedMediaTypes " >
< list >
< value > text / html;charset = utf - 8 </ value >
< value > text / xml </ value >
< value > text / plain </ value >
</ list >
</ property >
</ bean >
</ list >
</ property >
</ bean >
< bean id = " internalResourceViewResolver " class = " org.springframework.web.servlet.view.InternalResourceViewResolver " >
< property name = " suffix " value = " .jsp " ></ property >
< property name = " prefix " value = " / " ></ property >
< property name = " viewClass " value = " org.springframework.web.servlet.view.JstlView " />
</ bean >
</ beans >
<?
xml version
=
"
1.0
"
encoding
=
"
UTF-8
"
?>
< web - app version = " 2.5 "
xmlns = " http://java.sun.com/xml/ns/javaee "
xmlns:xsi = " http://www.w3.org/2001/XMLSchema-instance "
xsi:schemaLocation = " http://java.sun.com/xml/ns/javaee
http: // java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
< welcome - file - list >
< welcome - file > index.jsp </ welcome - file >
</ welcome - file - list >
< listener >
< listener - class > org.springframework.web.context.ContextLoaderListener </ listener - class >
</ listener >
< context - param >
< param - name > contextConfigLocation </ param - name >
< param - value >/ WEB - INF / applicationContext.xml </ param - value >
</ context - param >
< servlet >
< servlet - name > dispatcherServlet </ servlet - name >
< servlet - class > org.springframework.web.servlet.DispatcherServlet </ servlet - class >
< load - on - startup > 1 </ load - on - startup >
</ servlet >
< servlet - mapping >
< servlet - name > dispatcherServlet </ servlet - name >
< url - pattern >* .action </ url - pattern >
</ servlet - mapping >
</ web - app >
src/META-INF/persistence.xml
< web - app version = " 2.5 "
xmlns = " http://java.sun.com/xml/ns/javaee "
xmlns:xsi = " http://www.w3.org/2001/XMLSchema-instance "
xsi:schemaLocation = " http://java.sun.com/xml/ns/javaee
http: // java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
< welcome - file - list >
< welcome - file > index.jsp </ welcome - file >
</ welcome - file - list >
< listener >
< listener - class > org.springframework.web.context.ContextLoaderListener </ listener - class >
</ listener >
< context - param >
< param - name > contextConfigLocation </ param - name >
< param - value >/ WEB - INF / applicationContext.xml </ param - value >
</ context - param >
< servlet >
< servlet - name > dispatcherServlet </ servlet - name >
< servlet - class > org.springframework.web.servlet.DispatcherServlet </ servlet - class >
< load - on - startup > 1 </ load - on - startup >
</ servlet >
< servlet - mapping >
< servlet - name > dispatcherServlet </ servlet - name >
< url - pattern >* .action </ url - pattern >
</ servlet - mapping >
</ web - app >
<?
xml version
=
"
1.0
"
encoding
=
"
UTF-8
"
?>
< persistence xmlns = " http://java.sun.com/xml/ns/persistence "
xmlns:xsi = " http://www.w3.org/2001/XMLSchema-instance "
xsi:schemaLocation = " http://java.sun.com/xml/ns/persistence
http: // java.sun.com/xml/ns/persistence/persistence_1_0.xsd"
version = " 1.0 " >
< persistence - unit name = " sjPU " transaction - type = " RESOURCE_LOCAL " >
< provider > org.hibernate.ejb.HibernatePersistence </ provider >
< properties >
< property name = " hibernate.connection.driver_class " value = " com.mysql.jdbc.Driver " />
< property name = " hibernate.connection.url " value = " jdbc:mysql://localhost:3306/sj " />
< property name = " hibernate.connection.username " value = " root " />
< property name = " hibernate.connection.password " value = " root " />
< property name = " hibernate.show_sql " value = " true " />
< property name = " hibernate.format_sql " value = " true " />
< property name = " hibernate.hbm2ddl.auto " value = " update " />
</ properties >
</ persistence - unit >
</ persistence >
list.jsp
< persistence xmlns = " http://java.sun.com/xml/ns/persistence "
xmlns:xsi = " http://www.w3.org/2001/XMLSchema-instance "
xsi:schemaLocation = " http://java.sun.com/xml/ns/persistence
http: // java.sun.com/xml/ns/persistence/persistence_1_0.xsd"
version = " 1.0 " >
< persistence - unit name = " sjPU " transaction - type = " RESOURCE_LOCAL " >
< provider > org.hibernate.ejb.HibernatePersistence </ provider >
< properties >
< property name = " hibernate.connection.driver_class " value = " com.mysql.jdbc.Driver " />
< property name = " hibernate.connection.url " value = " jdbc:mysql://localhost:3306/sj " />
< property name = " hibernate.connection.username " value = " root " />
< property name = " hibernate.connection.password " value = " root " />
< property name = " hibernate.show_sql " value = " true " />
< property name = " hibernate.format_sql " value = " true " />
< property name = " hibernate.hbm2ddl.auto " value = " update " />
</ properties >
</ persistence - unit >
</ persistence >
<%
@ 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 >
< c: if test = " ${empty requestScope.list} " >
对不起,没有要显示的记录 !!!!
</ c: if >
< c: if test = " ${!empty requestScope.list} " >
< c:forEach items = " ${requestScope.list} " var = " s " >
< c:out value = " ${s.id} " />
< c:out value = " ${s.name} " />
< c:out value = " ${s.department.name} " />
< br />
</ c:forEach >
</ c: if >
</ body >
</ html >
这里重点关注applicationContext.xml、dispatcherServlet-servlet.xml、EmployeeAction。其中dispatcherServlet-servlet.xml文件的命名规则遵循web.xml中配置的dispatcherServlet servlet的servlet-name属性的值。dispatcherServlet-servlet.xml里面配置了开启SpringMVC的注解解析器以及视图渲染器,和处理response时返回给浏览器的头信息.
<% @ 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 >
< c: if test = " ${empty requestScope.list} " >
对不起,没有要显示的记录 !!!!
</ c: if >
< c: if test = " ${!empty requestScope.list} " >
< c:forEach items = " ${requestScope.list} " var = " s " >
< c:out value = " ${s.id} " />
< c:out value = " ${s.name} " />
< c:out value = " ${s.department.name} " />
< br />
</ c:forEach >
</ c: if >
</ body >
</ html >
点我下载工程代码