前言:整理一些集成框架,发现网上都是一些半成品,都是共享一部分出来(确实让人很纠结),这是整理了一份SSH的测试案例,完全可以用!
言归正传,首先强调一点首先,SSH不是一个框架,而是多个框架(struts+spring+hibernate)的集成,是目前较流行的一种Web应用程序开源集成框架,用于构建灵活、易于扩展的多层Web应用程序。
集成SSH框架的系统从职责上分为四层:、、和域模块层,以帮助开发人员在短期内搭建结构清晰、可复用性好、维护方便的。其中使用Struts作为系统的整体基础架构,负责MVC的分离,在Struts框架的模型部分,控制业务跳转,利用Hibernate框架对提供支持,Spring做管理,管理struts和hibernate。具体做法是:用的分析方法根据需求提出一些模型,将这些模型实现为基本的Java对象,然后编写基本的DAO(Data Access Objects)接口,并给出Hibernate的DAO实现,采用Hibernate架构实现的DAO类来实现Java类与数据库之间的转换和访问,最后由Spring做管理,管理struts和hibernate。
整个Demo的视图
下面是主要的代码模块
GenerateExcelAction.java
1 package com.talent.example.user.action; 2 import java.io.InputStream; 3 import com.opensymphony.xwork2.ActionSupport; 4 import com.talent.example.user.service.UserService; 5 /** 6 *Title:GenerateExcelAction
7 *Description: 导出Exel
8 *Copyright: Copyright (c) VISEC 2015
9 *CreatTime: Mar 31 2015
10 * @author Dana丶Li11 * @version 1.012 */13 public class GenerateExcelAction extends ActionSupport {14 private static final long serialVersionUID = 1L;15 16 private UserService service;17 18 public UserService getService() {19 return service;20 }21 22 public void setService(UserService service) {23 this.service = service;24 }25 26 public InputStream getDownloadFile()27 {28 return this.service.getInputStream();29 }30 31 @Override32 public String execute() throws Exception {33 34 return SUCCESS;35 36 }37 38 }
UpdateUserAction.java
1 package com.talent.example.user.action; 2 import com.opensymphony.xwork2.ActionSupport; 3 import com.talent.example.user.bean.User; 4 import com.talent.example.user.service.UserService; 5 /** 6 *Title:UpdatePUserAction
7 *Description:修改User信息Action
8 *Copyright: Copyright (c) VISEC 2015
9 *CreatTime: Mar 31 2015
10 * @author Dana丶Li11 * @version 1.012 */13 public class UpdateUserAction extends ActionSupport {14 private static final long serialVersionUID = 1L;15 private User user;16 private UserService service;17 18 public User getUser() {19 return user;20 }21 public void setUser(User user) {22 this.user = user;23 }24 public UserService getService() {25 return service;26 }27 public void setService(UserService service) {28 this.service = service;29 }30 31 @Override32 public String execute() throws Exception {33 34 this.service.update(user);35 36 return SUCCESS;37 }38 }
User.hbm.xml
1 2 5 67 8 9 18 1910 1211 14 16 17
UserDAOImpl.java
1 package com.talent.example.user.dao.impl; 2 import java.util.List; 3 import org.springframework.orm.hibernate3.support.HibernateDaoSupport; 4 import com.talent.example.user.bean.User; 5 import com.talent.example.user.dao.UserDAO; 6 /** 7 *Title:UserDAOImplr
8 *Description:UserDAO实现类
9 *Copyright: Copyright (c) VISEC 2015
10 *CreatTime: Mar 31 2015
11 * @author Dana丶Li12 * @version 1.013 */14 public class UserDAOImpl extends HibernateDaoSupport implements UserDAO {15 16 @SuppressWarnings("unchecked")17 public ListfindAllUser() {18 19 String hql = "from User user order by user.id desc";20 21 return (List )this.getHibernateTemplate().find(hql);22 23 }24 25 public User findUserById(Integer id) {26 27 User user = (User)this.getHibernateTemplate().get(User.class, id);28 29 return user;30 }31 32 public void removeUser(User user) {33 34 this.getHibernateTemplate().delete(user);35 36 }37 38 public void saveUser(User user) {39 40 this.getHibernateTemplate().save(user);41 42 }43 44 public void updateUser(User user) {45 46 this.getHibernateTemplate().update(user);47 48 }49 50 }
UserDAO.java
1 package com.talent.example.user.dao; 2 import java.util.List; 3 import com.talent.example.user.bean.User; 4 /** 5 *Title:UserDAO
6 *Description:UserDAO接口
7 *Copyright: Copyright (c) VISEC 2015
8 *CreatTime: Mar 31 2015
9 * @author Dana丶Li10 * @version 1.011 */12 public interface UserDAO {13 public void saveUser(User user);14 15 public void removeUser(User user);16 17 public User findUserById(Integer id);18 19 public ListfindAllUser();20 21 public void updateUser(User user);22 }
下面是主要的配置文件
hibernate.cfg.xml
struts.xml
listUser.action /save.jsp /list.jsp listUser.action /update.jsp listUser.action /update.jsp application/vnd.ms-excel filename="AllUsers.xls" downloadFile
applicationContext.xml
以及整个项目的Web.xml配置文件
web.xml
SSHv1.0 contextConfigLocation classpath:applicationContext.xml; struts2 org.apache.struts2.dispatcher.FilterDispatcher struts2 /* index.jsp org.springframework.web.context.ContextLoaderListener
以及简单的页面效果图
Demo下载地址: