宅急送 项目第五天 区域、分区、定区

1. 区域管理

增加、修改、删除功能 和之前 收派标准和取派员管理类似,留作课后练习

1.1. 区域信息批量导入

技术:文件上传 和 Excel解析 (已经 讲解POI如何读写Excel 文档)

1.1.1. 上传Excel文件页面一键上传

/WEB-INF/pages/base/region.jsp 区域管理页面
在datagrid的toolbar 添加按钮

{id : 'button-import',text : '批量导入',iconCls : 'icon-save'
}

文件上传基本要求 :

客户端 `form post`提交、 `enctype=multipart/form-data` 、`input file` 必须提供name属性
服务器 Apache commons-fileupload 、 COS、 JSPSmartUpload 

这里写图片描述

Struts2 框架默认使用文件上传 jakarta 是 apache commons-fileupload

企业中制作文件上传,大多使用一键上传的效果 (页面中只提供一个按钮,点击按钮就可以完成文件上传 ) ,原理???

一键上传,往往和Ajax效果结合 ,页面不刷新

按钮点击 --- 触发隐藏form input file浏览文件动作 ---- 选定文件 触发onChange事件 ---  提交form表单,target指向隐藏iframe ---- 服务器完成文件上传,将结果更新隐藏iframe 

使用 Jquery 插件 Ocupload
http://code.google.com/p/ocupload/ 下载 ocupload 1.1.2.js

将js插件导入项目

这里写图片描述

参照 Documentation - ocupload - One Click Upload - A jQuery Plugin - Google Project Hosting.mht 使用

这里写图片描述

在页面导入 一键上传js


<script type="text/javascript" 
src="${pageContext.request.contextPath }/js/ocupload/jquery.ocupload-1.1.2.js">script>

对按钮添加一键上传效果

// 对批量导入添加一键上传效果 
$('#button-import').upload({name : 'upload' , // action : '${pageContext.request.contextPath}/region_importXls.action', // 表单提交路径onComplete : function(response){$.messager.alert('信息','文件上传成功!','info');}
});

1.1.2. 编写服务器端

编写RegionAction 接收上传文件 ,使用Struts2 内置FileUploadInterceptor 实现文件上传

public class RegionAction extends BaseAction implements ModelDriven<Region> {
}
public interface RegionService {
}
public class RegionServiceImpl extends BaseService implements RegionService {
}

将RegionDAO 注入 BaseService
将RegionService 注入BaseAction

导入区域数据,参考 region.xls、Mysql全国省市区以及邮编数据库

这里写图片描述

这里写图片描述

返回客户端 json

// 返回json
Map<String, Object> map = new HashMap<String, Object>();
map.put("result", "success");
map.put("msg", "区域导入完成");ActionContext.getContext().put("map", map);

配置 struts.xml applicationContext.xml

<action name="region_*" class="regionAction" method="{1}"><result name="importXlsSUCCESS" type="json"><param name="root">mapparam>result>
action>

使用log4j 记录导入失败日志

// 使用log4j 日志记录器,记录日志
private static final Logger LOG = Logger.getLogger(RegionAction.class);

记录日志

try {regionService.saveRegion(region);
} catch (Exception e) {// 导入region失败,记录日志LOG.error("区域导入失败,编号:" + region.getId(), e);
}

1.2. 查询区域列表 (分页查询)

将 region.jsp 的 datagrid的url 指向服务器Action

url : "${pageContext.request.contextPath}/region_pageQuery.action" 

在RegionAction 添


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部