4. 完成功能.
(1)com.atguigu.ssh.actions包下新建EmployeeAction.java
1 package com.atguigu.ssh.actions; 2 3 import java.util.Map; 4 5 import org.apache.struts2.interceptor.RequestAware; 6 7 import com.atguigu.ssh.service.EmployeeService; 8 import com.opensymphony.xwork2.ActionSupport; 9 10 public class EmployeeAction extends ActionSupport implements RequestAware{ 11 /** 12 * 13 */ 14 private static final long serialVersionUID = 1L; 15 16 private EmployeeService employeeService; 17 18 public void setEmployeeService(EmployeeService employeeService){ 19 this.employeeService=employeeService; 20 } 21 22 public String list(){ 23 request.put("employees", employeeService.getAll()); 24 return "list"; 25 } 26 27 //放到页面里 28 private Map<String,Object> request; 29 @Override 30 public void setRequest(Map<String, Object> arg0) { 31 this.request=arg0; 32 } 33 34 }
com.atguigu.ssh.dao包下新建EmployeeDao.java
1 package com.atguigu.ssh.dao; 2 3 import java.util.List; 4 5 import org.hibernate.Session; 6 import org.hibernate.SessionFactory; 7 8 import com.atguigu.ssh.entities.Employee; 9 10 public class EmployeeDao { 11 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 public List<Employee> getAll(){ 23 String hql="FROM Employee e LEFT OUTER JOIN FETCH e.department"; 24 return getSession().createQuery(hql).list(); 25 } 26 }
com.atguigu.ssh.service包下新建EmployeeService.java
1 package com.atguigu.ssh.service; 2 3 import java.util.List; 4 5 import com.atguigu.ssh.dao.EmployeeDao; 6 import com.atguigu.ssh.entities.Employee; 7 8 public class EmployeeService { 9 10 private EmployeeDao employeeDao; 11 public void setEmployeeDao(EmployeeDao employeeDao){ 12 this.employeeDao=employeeDao; 13 } 14 15 public List<Employee> getAll(){ 16 List<Employee> employees = employeeDao.getAll(); 17 return employees; 18 } 19 }
(2)完善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="employeeService" class="com.atguigu.ssh.service.EmployeeService"> 11 <property name="employeeDao" ref="employeeDao"></property> 12 </bean> 13 14 <bean id="employeeAction" class="com.atguigu.ssh.actions.EmployeeAction" 15 scope="prototype"> 16 <property name="employeeService" ref="employeeService"></property> 17 </bean> 18 </beans>
(3)完善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 <action name="emp-*" class="employeeAction" 13 method="{1}"> 14 <result name="list">/WEB-INF/views/emp-list.jsp</result> 15 </action> 16 </package> 17 18 </struts>
(4)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 <a href="emp-list">显示所有员工信息List All Employees</a> 11 </body> 12 </html>
(5)WebContent-views-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 </head> 10 <body> 11 <h3>Employee List Page</h3> 12 13 <s:if test="#request.employees == null ||#request.size()==0"> 14 没有员工信息 15 </s:if> 16 <s:else> 17 <table border="1" cellpadding="10" cellspacing="0"> 18 <tr> 19 <td>ID</td> 20 <td>LASTNAME</td> 21 <td>EMAIL</td> 22 <td>BIRTH</td> 23 <td>CREATETIME</td> 24 <td>DEPT</td> 25 </tr> 26 <s:iterator value="#request.employees"> 27 <tr> 28 <td>${id}</td> 29 <td>${lastName}</td> 30 <td>${email }</td> 31 <td>${birth}</td> 32 <td>${createTime}</td> 33 <td>${department.departmentName}</td> 34 </tr> 35 </s:iterator> 36 </table> 37 </s:else> 38 </body> 39 </html>
(6)修改下web.xml中的信息,注册Struts2
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>
SSH_框架整合2;