业务操作系统(五)

一、文件异步上传

     传统表单提交文件上传会刷新页面,使用OCUpload插件可以实现异步上传。

(1)页面部分

 

(2)Action

@Controller
@Scope("prototype")
public class RegionAction extends BaseAction<Region>{

	@Autowired
	private RegionService regionService;

	private File myFile;
	private String myFileFileName;

	public String importExcel() throws IOException{

		if(myFile != null){

			//是否是Excel
			if(myFileFileName.matches("^.+\\.(?i)((xls)|(xlsx))$")){

				String flag = "1";

				try{
					regionService.importExcel(myFile,myFileFileName);
				}catch(Exception e){
					e.printStackTrace();
					flag = "0";
				}

				ServletActionContext.getResponse().setContentType("text/html;charset=UTF-8");
				ServletActionContext.getResponse().getWriter().print(flag);
			}
		}
		return NONE;
	}

	public void setMyFile(File myFile){
		this.myFile = myFile;
	}

	public String getMyFileFileName(){
		return myFileFileName;
	}

	public void setMyFileFileName(String myFileFileName){
		this.myFileFileName = myFileFileName;
	}
}

 

(3)POI读取Excel

@Service
@Transactional
public class RegionServiceImpl implements RegionService{

	@Autowired
	private RegionDao regionDao;

	@Override
	public void importExcel(File myFile,String fileName) throws Exception{

		List<Region> list = new ArrayList<Region>();

		boolean is03Excel = fileName.matches("^.+\\.(?i)(xls)$");

		FileInputStream inputStream = new FileInputStream(myFile);

		// 1、读取工作簿
		Workbook workbook = is03Excel ? new HSSFWorkbook(inputStream) : new XSSFWorkbook(inputStream);
		// 2、读取第一个工作表
		Sheet sheet = workbook.getSheetAt(0);

		// 遍历获取每行
		for(Row row : sheet){

			// 获取行号
			int num = row.getRowNum();

			// 第一行不保存到数据库
			if(num != 0){

				row.getCell(0).setCellType(Cell.CELL_TYPE_STRING);
				row.getCell(1).setCellType(Cell.CELL_TYPE_STRING);
				row.getCell(2).setCellType(Cell.CELL_TYPE_STRING);
				row.getCell(3).setCellType(Cell.CELL_TYPE_STRING);
				row.getCell(4).setCellType(Cell.CELL_TYPE_STRING);

				// 获取省市县
				String id = row.getCell(0).getStringCellValue();
				String province = row.getCell(1).getStringCellValue();
				String city = row.getCell(2).getStringCellValue();
				String district = row.getCell(3).getStringCellValue();
				String postcode = row.getCell(4).getStringCellValue();

				Region region = new Region(id,province,city,district,postcode,null,null,null);
				list.add(region);
			}
		}

		regionDao.saveBatch(list);

	}
}
@Repository
public class RegionDaoImpl extends BaseDaoImpl<Region> implements RegionDao{

	@Override
	public void saveBatch(List<Region> list){
		for(Region region : list){
			saveOrUpdate(region);
		}
	}
}
时间: 2024-10-11 08:03:33

业务操作系统(五)的相关文章

业务操作系统(二)

目录     1.layout     2.accordion     3.tabs     4.Ztree 一.EasyUI相关组件 1.layout(布局) <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN

业务操作系统(六)

一.分区的相关操作 1.保存      (1)实体类 (2)前台页面 <div style="overflow:auto;padding:5px;" border="false"> <form> <table class="table-edit" width="80%" align="center"> <tr class="title">

跟我一起写操作系统(五)——分配物理内存

转载注明出处:http://www.cnblogs.com/lucasysfeng/p/4847662.html 上一讲地址:http://www.cnblogs.com/lucasysfeng/p/5059767.html 项目地址:https://github.com/lucasysfeng/lucasOS 上一讲我们获取到了物理内存,本讲我们来看如何分配物理内存.为简化问题,我们不使用伙伴内存分配算法,而是把可用内存按页存入栈中,每次分配从栈中取就可以了. 本讲的主要代码在lib/pmm.

业务操作系统(一)

一.搭建开发环境 1.数据库环境 (1)创建一个数据库.      create database bos character set utf8 (2)创建一个数据库用户.      create user bos identified by '123456' (3)为用户授权      grant all on bos.* to bos (4)使用创建的用户登录MySql      mysql –ubos –p123456   2.Web环境 (1)web.xml <?xml version=

业务操作系统(四)

一.页面分析 Ztree树的加载 var setting = { data : { simpleData : { // 简单数据 enable : true } }, callback : { onClick : onClick } }; // 基本功能菜单加载 $.ajax({ url : "${pageContext.request.contextPath}/json/menu.json", type : "POST", dataType : "jso

业务逻辑:五、完成认证用户的动态授权功能 六、完成Shiro整合Ehcache缓存权限数据

一. 完成认证用户的动态授权功能 提示:根据当前认证用户查询数据库,获取其对应的权限,为其授权 操作步骤: 在realm的授权方法中通过使用principals对象获取到当前登录用户 创建一个授权信息对象 根据用户查询角色列表,并遍历角色列表 在循环体中将角色关键字添加到授权信息对象的角色属性中 根据用户查询权限列表,并遍历权限列表 在循环体中将权限关键字添加到授权信息对象的权限属性中 在角色与权限service类的根据用户查询角色与权限方法中判断用户是否为系统管理员 如果是系统管理员就查询出所

整理操作系统

一.为何要有操作系统? 操作系统简称OS,它是管理和控制计算机硬件与软件资源的程序,是直接运行在硬件上最基本的系统软件,其他软件都必须在操作系统的支持下才能运行.计算机最早期的时候没有操作系统的,当时程序员写软件必须先要了解计算机硬件的参数才能编写,这样写出的软件不但费时费力还不方便移植.操作系统解决了这些问题,我们编写程序时只需要调用相对应的硬件参数接口就行了,不用理会繁琐的硬件信息了.总之操作系统的出现就是为了让人们更加方便的使用计算机硬件资源的一个工具. 二.操作系统的位置 操作系统处于计

华为邓飚:战略规划指引千亿美元规模业务转型

对于华为这样一个超大型跨国企业来说,战略规划是一个非常重要的方法论,特别在战略转型过程中发挥了重要的作用.华为从2004年开始实施五年战略规划,以后每年都重新往后五年再滚动规划一遍,与当年的商业计划对锁,以此保证对长期的关注以及对于短期的聚集.华为IT其实是对五年滚动战略规划和对锁商业计划进行解码的过程,接下来是变革规划和流程管理,最后落实到IT系统中,由此完成整个战略转型和业务发展. 2012年1月,时任华为软件公司总裁邓飚转到质量与流程IT管理部总裁担任公司高级副总裁.集团CIO后,提出了华

读 自己动手写操作系统

用一个月左右的时间读了<自己动手写操作系统>,这是一本让人读着很过瘾,却也特别累的一本书. http://ike.126.com 对操作系统的兴趣由来已久,只是一直未能找到入门之径.操作系统教材是个令人生畏的东西,它可以告诉人有什么,却不能告诉人为什么,从那里了解的操作系统有如盲人摸到的象,得到各个部分,却不能拥有整体,加之缺乏实践的支持,理论显得苍白空洞.如Linux般的开源操作系统,虽然可以让人坐拥全部源码,但一来规模庞大,让人不知从何入手,二来源码背后更多的是业务--操作系统和硬件知识,