宅急送 项目第五天 区域、分区、定区
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 添
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
