1、ssh整合web导出excel案例基于Spring,Struts2,Hibernate整合,jsp页面导出(下载)excel文件的简单应用1)本例不采用Java任何导出excel文件常用的poi或者jxl等第三方jar包,仅仅基于I/O,做一个最简单的ssh整合excel文件导出(下载)。2)2-3为功能展示 a.主页展示 导出当前页到excel文件 导出全部到excel文件 b.详细信息展示(下属子地名) 导出当前页到excel文件3)4-7为ssh整合相关xml配置 a. Spring相关xml配置 b. Hibernate相关xml配置 c. Struts2相关xml配置 d. web.
2、xml配置(Spring容器的实例化,struts过滤器的配置)3)8-14为源代码 a.action代码 b.service代码(导出excel文件具体实现,包括下载文件名中文乱码问题,详见代码注释) c.dao代码4)15-17为jsp页面 a.index.jsp(主页) b.list.jsp(列表显示) c.detail.jsp(详细信息-子地址列表显示) 1.导入相关jar包(ssh+dbcp)2.本例导出全国地址详细信息,数据库中数据内容如下:3.功能展示a.主页 b.导出当前页(文件名为当前页起始id到结束id) c.导出当前页的excel文件内容 d.导出全部 e.下属地名详细信
3、息 f.导出下属地名4.spring配置 org.hibernate.dialect.MySQLDialect true true com/luo/ssh/entity/Address.hbm.xml 5.hibernate映射配置(基本)!DOCTYPE hibernate-mapping PUBLIC -/Hibernate/Hibernate Mapping DTD 3.0/EN 6.struts配置 36 /list.jsp /detail.jsp 7.web.xml配置web-app version=2.5 xmlns= xmlns:xsi=http:/www.w3.org/2001
4、/XMLSchema-instance xsi:schemaLocation= contextConfigLocation classpath:ssh.xml org.springframework.web.context.ContextLoaderListener struts2 org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter struts2 /* index.jsp 8.实体类Addresspackage com.luo.ssh.entity;import java.io.Serializable;
5、/* * 地名类 * author 罗立明 * */public class Address implements Serializable /*地名的id,唯一*/ private int id; /*地名*/ private String name; /*地名的下属级别,直辖市,省,自治区为1,其他没下一级级别+1*/ private int level; /*地名上一级的id,直辖市,省,自治区的上级id为0*/ private int upid; /*保留字段,地名备注及描述*/ private String info; public int getId() return id; pu
6、blic void setId(int id) this.id = id; public String getName() return name; public void setName(String name) this.name = name; public int getLevel() return level; public void setLevel(int level) this.level = level; public int getUpid() return upid; public void setUpid(int upid) this.upid = upid; publ
7、ic String getInfo() return info; public void setInfo(String info) this.info = info; Override public int hashCode() return id16; Override public boolean equals(Object obj) if (this = obj) return true; if (obj = null) return false; if (getClass() != obj.getClass() return false; Address other = (Addres
8、s) obj; if (id != other.id) return false; return true; Override public String toString() return id:+id+n地名:+name+n级别:+level+n上一级id:+upid; 9.dao接口定义package com.luo.ssh.dao;import java.util.List;import com.luo.ssh.entity.Address;public interface AddressDao /* * 查询地址总数 * return */ public int count(); /
9、* * 根据id查找地址 * param id * return */ public Address findById(int id); /* * 根据id查找所有下级地址 * param address * return */ public List findChildren(Address address); /* * 根据id查找该地址的详细信息,追溯到最高上级 * param id * return 结果形如:湖北省-荆州市-公安县-狮子口镇 */ public String findDetailById(int id); /* * 根据地名模糊查询所有满足条件的地址 * param
10、name * return */ public List findLikeName(String name); /* * 分页查询地址信息 * param page * param pageSize * return */ public List findPage(int page,int pageSize); /* * 查询全部 * return */ public List findAll();10.dao的Hibernate实现package com.luo.ssh.dao.impl;import java.sql.SQLException;import java.util.List;i
11、mport org.hibernate.HibernateException;import org.hibernate.Query;import org.hibernate.Session;import org.springframework.orm.hibernate3.HibernateCallback;import org.springframework.orm.hibernate3.HibernateTemplate;import org.springframework.orm.hibernate3.support.HibernateDaoSupport;import com.luo.
12、ssh.dao.AddressDao;import com.luo.ssh.entity.Address;public class AddressDaoHibernateImpl extends HibernateDaoSupport implements AddressDao public Address findById(int id) HibernateTemplate template=getHibernateTemplate(); Address address=(Address)template.get(Address.class, id); return address; pub
13、lic List findChildren(Address address) String hql=from Address where upid=?; return getHibernateTemplate().find(hql, address.getId(); public String findDetailById(int id) Address add=findById(id); String detail=add.getName(); while(add.getLevel()!=1) add=findById(add.getUpid(); detail=add.getName()+
14、-+detail; return detail; public List findLikeName(String name) String hql=from Address where name like ?; return getHibernateTemplate().find(hql, %+name+%); public int count() String hql=select count(*) from Address; return Integer.parseInt(getHibernateTemplate().find(hql).get(0).toString(); public
15、List findPage(final int page, final int pageSize) HibernateTemplate template=getHibernateTemplate(); List list=(List)template.execute(new HibernateCallback() public Object doInHibernate(Session session) throws HibernateException, SQLException String hql=from Address; Query query=session.createQuery(hql); query.setFirstResult(page-1)*pageSize); query.setMaxResults(pageSize); return query.list(); ); return list; public List findAll() String hql=from Address; return getHibernateTemplate().find(hql); 11
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1