SSH_框架整合7--整个项目CODE
Posted noaman_wgs
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SSH_框架整合7--整个项目CODE相关的知识,希望对你有一定的参考价值。
一 架构
1Action类
2 配置文件
3 View页面
二 Code
1 src
(1)com.atguigu.ssh.actions
>EmployeeAction.java
1 package com.atguigu.ssh.actions; 2 3 import java.io.ByteArrayInputStream; 4 import java.io.InputStream; 5 import java.io.UnsupportedEncodingException; 6 import java.util.Date; 7 import java.util.Map; 8 9 import org.apache.struts2.interceptor.RequestAware; 10 11 import com.atguigu.ssh.entities.Employee; 12 import com.atguigu.ssh.service.DepartmentService; 13 import com.atguigu.ssh.service.EmployeeService; 14 import com.opensymphony.xwork2.ActionSupport; 15 import com.opensymphony.xwork2.ModelDriven; 16 import com.opensymphony.xwork2.Preparable; 17 18 public class EmployeeAction extends ActionSupport implements RequestAware, 19 ModelDriven<Employee>,Preparable{ 20 21 private static final long serialVersionUID = 1L; 22 23 private EmployeeService employeeService; 24 25 public void setEmployeeService(EmployeeService employeeService){ 26 this.employeeService=employeeService; 27 } 28 29 //5 校验注册的姓名是否可用 30 private String lastName; 31 32 public void setLastName(String lastName) { 33 this.lastName = lastName; 34 } 35 36 public String validateLastName() throws UnsupportedEncodingException{ 37 if(employeeService.lastNameIsValid(lastName)){ 38 inputStream = new ByteArrayInputStream("1".getBytes("UTF-8")); 39 }else{ 40 inputStream = new ByteArrayInputStream("0".getBytes("UTF-8")); 41 } 42 return "ajax-success"; 43 } 44 45 //**** 4 使用ModelDriven拦截器方法存储添加的信息 46 public String save(){ 47 //第一次添加 就加上系统时间,否则直接保存不修改时间 48 if(id == null){ 49 model.setCreateTime(new Date()); 50 } 51 employeeService.saveorUpdate(model); 52 return SUCCESS; 53 } 54 55 /** 56 * 可以根据 id 来判断为 save 方法准备的 model 是 new 的还是从数据库获取的! 57 */ 58 //****6-2 Edit 59 public void prepareSave(){ 60 //第一次添加 61 if(id == null){ 62 model=new Employee(); 63 } 64 //修改,从数据库中获取 65 else{ 66 model = employeeService.get(id); 67 } 68 69 } 70 71 //3-1 查询Department 72 private DepartmentService departmentService; 73 public void setDepartmentService(DepartmentService departmentService) { 74 this.departmentService = departmentService; 75 } 76 //3-2 实现添加员工信息的方法 77 public String input(){ 78 request.put("departments", departmentService.getAll()); 79 return INPUT; 80 } 81 82 //**** 6-1 拦截器的方法 83 public void prepareInput(){ 84 //说明在修改,这时从数据库中获取状态 85 if(id != null){ 86 model = employeeService.get(id); 87 } 88 } 89 //2 删除 90 private Integer id; 91 public void setId(Integer id) { 92 this.id = id; 93 } 94 /*public String delete(){ 95 employeeService.delete(id); 96 return SUCCESS; 97 }*/ 98 //2-1 使用Ajax方式删除 99 private InputStream inputStream; 100 101 public InputStream getInputStream() { 102 return inputStream; 103 } 104 105 public String delete(){ 106 employeeService.delete(id); 107 try { 108 //删除成功 109 inputStream=new ByteArrayInputStream("1".getBytes("UTF-8")); 110 } catch (UnsupportedEncodingException e) { 111 //删除失败 112 try { 113 inputStream=new ByteArrayInputStream("0".getBytes("UTF-8")); 114 } catch (UnsupportedEncodingException e1) { 115 // TODO Auto-generated catch block 116 e1.printStackTrace(); 117 } 118 e.printStackTrace(); 119 } 120 return "ajax-success"; 121 } 122 //1 查询 123 public String list(){ 124 request.put("employees", employeeService.getAll()); 125 return "list"; 126 } 127 128 //放到页面里 129 private Map<String,Object> request; 130 131 @Override 132 public void setRequest(Map<String, Object> arg0) { 133 this.request=arg0; 134 } 135 136 //**** 137 @Override 138 public void prepare() throws Exception { 139 } 140 //**** 141 private Employee model; 142 //**** 143 @Override 144 public Employee getModel() { 145 return model; 146 } 147 148 }
(2)com.atguigu.ssh.converters
>SSHDateConverter.java
1 package com.atguigu.ssh.converters; 2 3 import java.text.DateFormat; 4 import java.text.ParseException; 5 import java.text.SimpleDateFormat; 6 import java.util.Date; 7 import java.util.Map; 8 9 import org.apache.struts2.util.StrutsTypeConverter; 10 11 public class SSHDateConverter extends StrutsTypeConverter { 12 13 private DateFormat dateFormat; 14 15 public SSHDateConverter() 16 { 17 dateFormat = new SimpleDateFormat("yyyy-MM-dd"); 18 } 19 20 @Override 21 public Object convertFromString(Map context, String[] values, Class toClass) { 22 if(toClass == Date.class){ 23 if(values !=null && values.length>0){ 24 String value=values[0]; 25 try { 26 return dateFormat.parse(value); 27 } catch (ParseException e) { 28 e.printStackTrace(); 29 } 30 } 31 } 32 return values; 33 } 34 35 @Override 36 public String convertToString(Map context, Object o) { 37 if(o instanceof Date){ 38 Date date=(Date)o; 39 return dateFormat.format(date); 40 } 41 return null; 42 } 43 44 }
(3)com.atguigu.ssh.dao
>BaseDao.java
1 package com.atguigu.ssh.dao; 2 3 import org.hibernate.Session; 4 import org.hibernate.SessionFactory; 5 6 public class BaseDao { 7 8 private SessionFactory sessionFactory; 9 10 public void setSessionFactory(SessionFactory sessionFactory){ 11 this.sessionFactory=sessionFactory; 12 } 13 14 public Session getSession(){ 15 return this.sessionFactory.getCurrentSession(); 16 } 17 }
>DepartmentDao.java
1 package com.atguigu.ssh.dao; 2 3 import java.util.List; 4 5 import com.atguigu.ssh.entities.Department; 6 7 public class DepartmentDao extends BaseDao{ 8 9 //获取查询到的Department集合 10 public List<Department> getAll(){ 11 String hql="FROM Department"; 12 return getSession().createQuery(hql).list(); 13 } 14 }
>EmployeeDao.java
1 package com.atguigu.ssh.dao; 2 3 import java.util.List; 4 5 import org.hibernate.Query; 6 7 import com.atguigu.ssh.entities.Employee; 8 9 public class EmployeeDao extends BaseDao{ 10 11 /*放到父类BaseDao中 12 private SessionFactory sessionFactory; 13 14 public void setSessionFactory(SessionFactory sessionFactory){ 15 this.sessionFactory=sessionFactory; 16 } 17 18 public Session getSession(){ 19 return this.sessionFactory.getCurrentSession(); 20 }*/ 21 22 //5 Edit 23 public Employee get(Integer id){ 24 return (Employee) getSession().get(Employee.class, id); 25 } 26 27 //4 校验注册的姓名是否可用 28 public Employee getEmployeeByLastName(String lastName){ 29 String hql = "FROM Employee e WHERE e.lastName = ?"; 30 Query query = getSession().createQuery(hql).setString(0, lastName); 31 Employee employee = (Employee) query.uniqueResult(); 32 //System.out.println("***"+employee.getDepartment().getClass().getName()); 33 return employee; 34 } 35 //3 添加、存储 36 public void saveOrUpadate(Employee employee){ 37 getSession().saveOrUpdate(employee); 38 } 39 //2 删除 40 public void delete(Integer id){ 41 String hql="DELETE FROM Employee e WHERE e.id=?"; 42 getSession().createQuery(hql).setInteger(0,id).executeUpdate(); 43 } 44 //1获取 45 public List<Employee> getAll(){ 46 String hql="FROM Employee e LEFT OUTER JOIN FETCH e.department"; 47 return getSession().createQuery(hql).list(); 48 } 49 }
(4)com.atguigu.ssh.entities
>Department.java
1 package com.atguigu.ssh.entities; 2 3 public class Department { 4 5 private Integer id; 6 private String departmentName=""; 7 public Integer getId() { 8 return id; 9 } 10 public void setId(Integer id) { 11 this.id = id; 12 } 13 public String getDepartmentName() { 14 return departmentName; 15 } 16 public void setDepartmentName(String departmentName) { 17 this.departmentName = departmentName; 18 } 19 20 21 }
>Employee.java
1 package com.atguigu.ssh.entities; 2 3 import java.util.Date; 4 5 public class Employee { 6 private Integer id; 7 8 private String lastName=""; 9 private String email; 10 11 private Date birth; 12 private Date createTime; 13 14 private Department department; 15 16 public Integer getId() { 17 return id; 18 } 19 20 public void setId(Integer id) { 21 this.id = id; 22 } 23 24 public String getLastName() { 25 return lastName; 26 } 27 28 public void setLastName(String lastName) { 29 this.lastName = lastName; 30 } 31 32 public String getEmail() { 33 return email; 34 } 35 36 public void setEmail(String email) { 37 this.email = email; 38 } 39 40 public Date getBirth() { 41 return birth; 42 } 43 44 public void setBirth(Date birth) { 45 this.birth = birth; 46 } 47 48 public Date getCreateTime() { 49 return createTime; 50 } 51 52 public void setCreateTime(Date createTime) { 53 this.createTime = createTime; 54 } 55 56 public Department getDepartment() { 57 return department; 58 } 59 60 public void setDepartment(Department department) { 61 this.department = department; 62 } 63 64 /*@Override 65 public String toString() { 66 return "Employee [id=" + id + ", lastName=" + lastName + ", email=" 67 + email + ", birth=" + birth + ", createTime=" + createTime 68 + ", department=" + department+ "]"; 69 }*/ 70 71 72 }
>Department.hbm.xml
1 <?xml version="1.0"?> 2 <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" 3 "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> 4 <!-- Generated 2016-9-18 16:53:56 by Hibernate Tools 3.4.0.CR1 --> 5 <hibernate-mapping> 6 <class name="com.atguigu.ssh.entities.Department" table="SSH_DEPARTMENT"> 7 <id name="id" type="java.lang.Integer"> 8 <column name="ID" /> 9 <generator class="native" /> 10 </id> 11 <property name="departmentName" type="java.lang.String"> 12 <column name="DEPARTMENT_NAME" /> 13 </property> 14 </class> 15 </hibernate-mapping>
>Employee.hbm.xml
1 <?xml version="1.0"?> 2 <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" 3 "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> 4 <!-- Generated 2016-9-18 16:53:56 by Hibernate Tools 3.4.0.CR1 --> 5 <hibernate-mapping> 6 <class name="com.atguigu.ssh.entities.Employee" table="SSH_EMPLOYEE"> 7 8 <id name="id" type="java.lang.Integer"> 9 <column name="ID" /> 10 <generator class="native" /> 11 </id> 12 <property name="lastName" type="java.lang.String"> 13 <column name="LAST_NAME" /> 14 </property> 15 <property name="email" type="java.lang.String"> 16 <column name="EMAIL" /> 17 </property> 18 <property name="birth" type="java.util.Date"> 19 <column name="BIRTH" /> 20 </property> 21 <property name="createTime" type="java.util.Date"> 22 <column name="CREATE_TIME" /> 23 </property> 24 <many-to-one name="department" class="com.atguigu.ssh.entities.Department" lazy="false"> 25 <column name="DEPARTMENT_ID" /> 26 </many-to-one> 27 </class> 28 </hibernate-mapping>
(5)com.atguigu.ssh.service
>DepartmentService.java
1 package com.atguigu.ssh.service; 2 3 import java.util.List; 4 5 import com.atguigu.ssh.dao.DepartmentDao; 6 import com.atguigu.ssh.entities.Department; 7 8 public class DepartmentService { 9 10 private DepartmentDao departmentDao; 11 public void setDepartmentDao(DepartmentDao departmentDao) { 12 this.departmentDao = departmentDao; 13 } 14 15 public List<Department> getAll(){ 16 return departmentDao.getAll(); 17 } 18 }
>EmployeeService.java
1 package com.atguigu.ssh.service; 2 3 import java.util.List; 4 5 import com.atguigu.ssh.dao.DepartmentDao; 6 import com.atguigu.ssh.entities.Department; 7 8 public class DepartmentService { 9 10 private DepartmentDao departmentDao; 11 public void setDepartmentDao(DepartmentDao departmentDao) { 12 this.departmentDao = departmentDao; 13 } 14 15 public List<Department> getAll(){ 16 return departmentDao.getAll(); 17 } 18 }
2 conf
(1)applicationContext-beans.xml
1 <?xml version="1.0" encoding="UTF-8"?> 2 <beans xmlns="http://www.springframework.org/schema/beans" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> 5 6 <bean id="employeeDao" class="com.atguigu.ssh.dao.EmployeeDao"> 7 <property name="sessionFactory" ref="sessionFactory"></property> 8 </bean> 9 10 <bean id="departmentDao" class="com.atguigu.ssh.dao.DepartmentDao"> 11 <property name="sessionFactory" ref="sessionFactory"></property> 12 </bean> 13 14 <bean id="employeeService" class="com.atguigu.ssh.service.EmployeeService"> 15 <property name="employeeDao" ref="employeeDao"></property> 16 </bean> 17 18 <bean id="departmentService" class="com.atguigu.ssh.service.DepartmentService"> 19 <property name="departmentDao" ref="departmentDao"></property> 20 </bean> 21 22 <bean id="employeeAction" class="com.atguigu.ssh.actions.EmployeeAction" 23 scope="prototype"> 24 <property name="employeeService" ref="employeeService"></property> 25 <property name="departmentService" ref="departmentService"></property> 26 </bean> 27 </beans>
(2)applicationContext.xml
1 <?xml version="1.0" encoding="UTF-8"?> 2 <beans xmlns="http://www.springframework.org/schema/beans" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 xmlns:aop="http://www.springframework.org/schema/aop" 5 xmlns:tx="http://www.springframework.org/schema/tx" 6 xmlns:context="http://www.springframework.org/schema/context" 7 xmlns:p="http://www.springframework.org/schema/p" 8 xmlns:util="http://www.springframework.org/schema/util" 9 xsi:schemaLocation="http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd 10 http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd 11 http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.0.xsd 12 http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd 13 http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd"> 14 15 <!-- 导入资源文件 --> 16 <context:property-placeholder location="classpath:db.properties"/> 17 18 <!-- 导入C3P0数据源 --> 19 <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"> 20 <property name="user" value="${jdbc.user}"></property> 21 <property name="password" value="${jdbc.password}"></property> 22 <property name="driverClass" value="${jdbc.driverClass}"></property> 23 <property name="jdbcUrl" value="${jdbc.jdbcUrl}"></property> 24 25 <property name="initialPoolSize" value="${jdbc.initPoolSize}"></property> 26 <property name="maxPoolSize" value="${jdbc.maxPoolSize}"></property> 27 </bean> 28 29 <!--配置Hibernate 的sessionFactory的实例 --> 30 <bean id="sessionFactory" 31 class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"> 32 <property name="dataSource" ref="dataSource"></property> 33 <property name="configLocation" value="classpath:hibernate.cfg.xml"></property> 34 <property name="mappingLocations" value="classpath:com/atguigu/ssh/entities/*.hbm.xml"></property> 35 </bean> 36 37 <!--配置Spring声明式事务 --> 38 <!--1 配置hibernate事务管理器 --> 39 <bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager"> 40 <property name="sessionFactory" ref="sessionFactory"></property> 41 </bean> 42 43 <!--2 配置事务属性 --> 44 <tx:advice id="txAdvice" transaction-manager="transactionManager"> 45 <tx:attributes> 46 <tx:method name="get*" read-only="true"/> 47 <tx:method name="lastNameIsValid" read-only="true"/> 48 <tx:method name="*"/> 49 </tx:attributes> 50 </tx:advice> 51 52 <!--3 配置事务切入点 --> 53 <aop:config> 54 <aop:pointcut expression="execution(* com.atguigu.ssh.service.*.*(..))" id="txPointCut"/> 55 <aop:advisor advice-ref="txAdvice" pointcut-ref="txPointCut"/> 56 </aop:config> 57 58 59 60 61 62 63 64 65 </beans>
(3)db.properties
1 jdbc.user=root 2 jdbc.password=920614 3 jdbc.driverClass=com.mysql.jdbc.Driver 4 jdbc.jdbcUrl=jdbc:mysql:///spring_ssh 5 6 jdbc.initPoolSize=5 7 jdbc.maxPoolSize=10 8 #...
(4)hibernate.cfg.xml
1 <?xml version="1.0" encoding="UTF-8"?> 2 <!DOCTYPE hibernate-configuration PUBLIC 3 "-//Hibernate/Hibernate Configuration DTD 3.0//EN" 4 "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> 5 <hibernate-configuration> 6 <session-factory> 7 8 <property name="hibernate.dialect">org.hibernate.dialect.MySQL5InnoDBDialect</property> 9 <property name="hibernate.show_sql">true</property> 10 <property name="hibernate.format_sql">true</property> 11 <property name="hibernate.hbm2ddl.auto">update</property> 12 </session-factory> 13 </hibernate-configuration>
(5)struts.xml
1 <?xml version="1.0" encoding="UTF-8" ?> 2 <!DOCTYPE struts PUBLIC 3 "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" 4 "http://struts.apache.org/dtds/struts-2.3.dtd"> 5 6 <struts> 7 8 <constant name="struts.enable.DynamicMethodInvocation" value="false" /> 9 <constant name="struts.devMode" value="true" /> 10 11 <package name="default" namespace="/" extends="struts-default"> 12 <!-- 定义新的拦截器栈, 13 配置 prepare 拦截器栈的 alwaysInvokePrepare 参数值为 false --> 14 <interceptors> 15 <interceptor-stack name="sshStack"> 16 <interceptor-ref name="paramsPrepareParamsStack"> 17 <param name="prepare.alwaysInvokePrepare">false</param> 18 </interceptor-ref> 19 </interceptor-stack> 20 </interceptors> 21 <!-- 使用新的拦截器栈 --> 22 <default-interceptor-ref name="sshStack"></default-interceptor-ref> 23 24 <action name="emp-*" class="employeeAction" 25 method="{1}"> 26 <result name="list">/WEB-INF/views/emp-list.jsp</result> 27 28 <result type="stream" name="ajax-success"> 29 <param name="contentType">text/html</param> 30 <param name="inputName">inputStream</param> 31 </result> 32 <result name="input">/WEB-INF/views/emp-input.jsp</result> 33 34 <result name="success" type="redirect">/emp-list</result> 35 </action> 36 </package> 37 38 </struts>
(6)xwork-conversion.properties
1 java.util.Date=com.atguigu.ssh.converters.SSHDateConverter
3 WebContent-----WEB-INF
(1)views
>emp-input.jsp
1 <%@ page language="java" contentType="text/html; charset=UTF-8" 2 pageEncoding="UTF-8"%> 3 <%@ taglib prefix="s" uri="/struts-tags" %> 4 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 5 <html> 6 <head> 7 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 8 <title>Insert title here</title> 9 <script type="text/javascript" SRC="scripts/jquery-1.7.2.js"></script> 10 <script type="text/javascript"> 11 $(function(){ 12 $(":input[name=lastName]").change(function(){ 13 var val = $(this).val(); 14 val = $.trim(val); 15 var $this = $(this); 16 17 if(val != ""){ 18 //把当前节点后面的所有 font 兄弟节点删除 19 $this.nextAll("font").remove(); 20 21 var url="emp-validateLastName"; 22 var args={"lastName":val,"time":new Date()}; 23 $.post(url,args,function(data){ 24 //姓名可用 25 if(data == "1"){ 26 $this.after("<font color=‘green‘>LastName可用!</font>"); 27 } 28 //不可用 29 else if(data == "0"){ 30 $this.after("<font color=‘red‘>LastName不可用!</font>"); 31 } 32 //服务器错误 33 else{ 34 alert("服务器错误!"); 35 } 36 }); 37 }else{ 38 alert("lastName不能为空!"); 39 $(this).val(""); 40 //$(this).focus(); 41 } 42 }); 43 }) 44 </script> 45 </head> 46 <body> 47 48 <s:debug></s:debug> 49 50 <h4>Employee Input Page</h4> 51 52 <s:form action="emp-save" method="post"> 53 <s:if test="id != null"> 54 <s:textfield name="lastName" label="LastName" disabled="true"></s:textfield> 55 <s:hidden name="id"></s:hidden> 56 57 <%--通过隐藏域的方法 58 <s:hidden name="lastName"></s:hidden> 59 <s:hidden name="createTime"></s:hidden> --%> 60 </s:if> 61 62 <s:else> 63 <s:textfield name="lastName" label="LastName"></s:textfield> 64 </s:else> 65 <s:textfield name="email" label="Email"></s:textfield> 66 <s:textfield name="birth" label="Birth"></s:textfield> 67 68 <s:select list="#request.departments" 69 listKey="id" listValue="departmentName" name="department.id" 70 label="Department"></s:select> 71 <s:submit></s:submit> 72 </s:form> 73 74 </body> 75 </html>
>emp-list.jsp
1 <%@ page language="java" contentType="text/html; charset=UTF-8" 2 pageEncoding="UTF-8"%> 3 <%@ taglib prefix="s" uri="/struts-tags" %> 4 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 5 <html> 6 <head> 7 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 8 <title>Insert title here</title> 9 <script type="text/javascript" SRC="scripts/jquery-1.7.2.js"></script> 10 <script type="text/javascript"> 11 //删除, 使用 ajax 的方式 12 $(function(){ 13 $(".delete").click(function(){ 14 var lastName=$(this).next(":input").val(); 15 var flag=confirm("是否要删除"+lastName+"的信息吗?"); 16 //确认删除, 使用 ajax 的方式 17 if(flag){ 18 //获取要删除的行 19 var $tr=$(this).parent().parent(); 20 var url=this.href; 21 var args={"time":new Date()}; 22 $.post(url,args,function(data){ 23 //若 data 的返回值为 1, 则提示 删除成功, 且把当前行删除 24 if(data== "1"){ 25 alert("删除成功!"); 26 $tr.remove(); 27 }else{ 28 //若 data 的返回值不是 1, 提示删除失败. 29 alert("删除失败!"); 30 } 31 }); 32 } 33 return false; 34 }); 35 }) 36 </script> 37 </head> 38 <body> 39 <h3>Employee List Page</h3> 40 41 <s:if test="#request.employees == null ||#request.size()==0"> 42 没有员工信息 43 </s:if> 44 <s:else> 45 <table border="1" cellpadding="10" cellspacing="0"> 46 <tr> 47 <td>ID</td> 48 <td>LASTNAME</td> 49 <td>EMAIL</td> 50 <td>BIRTH</td> 51 <td>CREATETIME</td> 52 <td>DEPARTMENT</td> 53 <td>DELETE</td> 54 <td>EDIT</td> 55 </tr> 56 <s:iterator value="#request.employees"> 57 <tr> 58 <td>${id}</td> 59 <td>${lastName}</td> 60 <td>${email }</td> 61 <%-- 62 <td>${birth}</td> 63 <td>${createTime}</td> 64 --%> 65 <!-- 格式化时间 --> 66 <td> 67 <s:date name="birth" format="yyyy-MM-dd"/> 68 </td> 69 <td> 70 <s:date name="createTime" format="yyyy-MM-dd hh:mm:ss"/> 71 </td> 72 73 <td>${department.departmentName}</td> 74 <td> 75 <a href="emp-delete?id=${id }" class="delete">Delete</a> 76 <input type="hidden" value="${lastName}"/> 77 </td> 78 <td> 79 <a href="emp-input?id=${id }">Edit</a> 80 </td> 81 </tr> 82 </s:iterator> 83 </table> 84 </s:else> 85 </body> 86 </html>
(2)web.xml
1 <?xml version="1.0" encoding="UTF-8"?> 2 <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> 3 4 <!-- 配置spring配置文件.xml的名称和位置路径 --> 5 <context-param> 6 <param-name>contextConfigLocation</param-name> 7 <param-value>classpath:applicationContext*.xml</param-value> 8 </context-param> 9 10 <!-- Bootstraps the root web application context before servlet initialization --> 11 <listener> 12 <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 13 </listener> 14 15 <!-- 配置Struts的Filter --> 16 <filter> 17 <filter-name>struts2</filter-name> 18 <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> 19 </filter> 20 <filter-mapping> 21 <filter-name>struts2</filter-name> 22 <url-pattern>/*</url-pattern> 23 </filter-mapping> 24 25 </web-app>
(3)WebContent----index.jsp
1 <%@ page language="java" contentType="text/html; charset=UTF-8" 2 pageEncoding="UTF-8"%> 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 4 <html> 5 <head> 6 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 7 <title>Insert title here</title> 8 </head> 9 <body> 10 11 <a href="emp-list">显示所有员工信息:List All Employees</a> 12 <br><br><br> 13 <a href="emp-input">添加员工向信息:Add Employees‘ Information</a> 14 15 </body> 16 </html>
以上是关于SSH_框架整合7--整个项目CODE的主要内容,如果未能解决你的问题,请参考以下文章