项目一:第三天 收派标准添加 收派标准分页查询(基于datagrid实现) 收派标准修改快递员添加 快递员列表查询
1、收派标准添加
n jQuery easyUI window使用
n jQuery easyUI form表单校验
n 收派标准添加页面调整—url params
n 服务端实现—三层
2、jQuery easyUI datagrid 使用方式
n 将静态HTML渲染为datagrid样式(html方式)
n 发送ajax请求获取动态json数据构造datagrid(html方式)
n 使用easyUI提供的API(js方式)动态创建datagrid(掌握)
3、收派标准管理
n 收派标准分页查询(基于datagrid实现)
n 收派标准修改
4、快递员管理
n 快递员添加
快递员列表查询(no-Session)
-----------------------------------------------------------------------------
1.1 Validatebox表单校验


1、 给input加样式class=”easyui-validatebox”
2、 设置校验规则:
a) 非空规则 required:true

b) 其他规则:通过validType:指定规则
3、 在提交表单之前做表单校验:调用FORM的validate方法
1.1 通过调用easyui的API(js)创建datagrid(掌握)
1、 在页面中添加table元素给出id
2、 页面加载完成调用API datagrid将数据表格创建,通过json对象设置数据表格属性
当显示分页组件:
点击分页按钮发送请求,提交两个参数page(当前页数) rows(每页显示记录数)
服务端响应返回符合规范数据json对象: total(总记录数) rows(当前页的数据)
{
total: 12,
rows:[]
}
通过js方式创建数据表格
<table id="dg"></table>
<script type="text/javascript">
$('#dg').datagrid({
url:'../data/user.json', //发送请求 数据来源
columns:[[ //展示数据
{field:'id',title:'编号',width:100},
{field:'name',title:'姓名',width:100},
{field:'age',title:'年龄',width:100,align:'right'}
]],
pagination:true,//展示分页栏
/*
请求:提交参数
、rows(每页显示记录数)
响应:响应json数据
{
total:100,
rows:[] //当前页记录
}
*/
toolbar:[{
iconCls: 'icon-edit',
text:"编辑",
handler: function(){ //点击事件
alert('edit')
}
},{
iconCls: 'icon-save',
text:"新增",
handler: function(){ //点击事件
alert('save')
}
},{
iconCls: 'icon-help',
text:'帮助',
handler: function(){alert('help')}
}] ,
rownumbers:true,
singleSelect:true,
striped:true,
pageSize:3,
pageList:[3,10]
});
</script>
1 收派标准分页

@Action("standardAction_pageQuery")
public String pageQuery() throws Exception {
//dao中方法 Page<T> findAll(Pageable pageable);
//pageable:封装当前页 每页展示记录数
Pageable pageable = new PageRequest(page-1, rows);
//返回Page对象中:包含当前页记录 总记录数等
Page<Standard> page = standardService.pageQuery(pageable);
System.out.println("查询到总记录数:"+page.getTotalElements());
System.out.println("查询当前页记录:"+page.getContent());
Map<String, Object> map = new HashMap<>();
map.put("total", page.getTotalElements());
map.put("rows", page.getContent());
//转json gson;jsonlib,fastjson,jackson
//Jsonlib转json
//转对象,map 使用JSONObject
//转集合,数组说那个JSONArray
//将对象转为json
String json = JSONObject.fromObject(map).toString();
System.out.println(json);
ServletActionContext.getResponse().setContentType("text/json;charset=utf-8");
ServletActionContext.getResponse().getWriter().write(json);
return NONE;
1 实现收派标准修改功能
1.1 页面调整
查询easyui API:
Datagrid的方法:获取选中的记录

form表单方法:回显数
据
1、 给修改按钮设置点击事件:1判断2、获取选中记录3在表单中回显数据 4打开窗口


1.1 使用combobox展示收派标准数据
1、 页面:pages/base/courier.jsp
2、 修改combobox的url

1、 在收派标准action中添加查询所有收派标准,返回json数组形式

1.1 No session(理解)
初始化快递员对象中 定区集合
Web层转Courier对象为json串时候,对象中有fixedareas集合属性,jpa集合属性加载策略延迟加载。在action中转fixedareas集合为json串,通过代理对象查询数据库,action层中session已经关闭。

1、 解决方案:
1、 解决方案:方式一:使用过滤器延迟session生命周期:在web层(页面渲染完毕)关闭session
仅解决解决noSession问题
在web.xml中配置过滤器,当页面渲染完毕后关闭session
<!-- 必须放在struts2核心过滤器之前作用,延迟session生命周期 -->
<filter>
<filter-name>openEntityManagerInViewFilter</filter-name>
<filter-class>org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>openEntityManagerInViewFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
a) 方式二:将集合属性改为立即加载(效率低不用)


b) 方式三:
1、 方式二:将实体中不需要转json的属性排除掉


1、 页面中展示数据:


项目一:第三天 收派标准添加 收派标准分页查询(基于datagrid实现) 收派标准修改快递员添加 快递员列表查询的更多相关文章
- 直接拿来用!最火的iOS开源项目(一~三)
结束了GitHub平台上“最受欢迎的Android开源项目”系列盘点之后,我们正式迎来了“GitHub上最受欢迎的iOS开源项目”系列盘点.今天,我们将介绍20个在GitHub上非常受开发者欢迎的iO ...
- Hadoop学习笔记—20.网站日志分析项目案例(三)统计分析
网站日志分析项目案例(一)项目介绍:http://www.cnblogs.com/edisonchou/p/4449082.html 网站日志分析项目案例(二)数据清洗:http://www.cnbl ...
- 学习Coding-iOS开源项目日志(三)
继续前两篇,接着本第三篇<学习Coding-iOS开源项目日志(三)>讲解Coding-iOS开源项目. 前 言:作为初级程序员,想要提高自己的水平,其中一个有效的学习方法就是学习别人好的 ...
- Selenium Web 自动化 - 项目实战(三)
Selenium Web 自动化 - 项目实战(三) 2016-08-10 目录 1 关键字驱动概述2 框架更改总览3 框架更改详解 3.1 解析新增页面目录 3.2 解析新增测试用例目录 3. ...
- Vue2+VueRouter2+webpack 构建项目实战(三):配置路由,运行页面
制作.vue模板文件 通过前面的两篇博文的学习,我们已经建立好了一个项目.问题是,我们还没有开始制作页面.下面,我们要来做页面了. 我们还是利用 http://cnodejs.org/api 这里公开 ...
- SuperDiamond在JAVA项目中的三种应用方法实践总结
SuperDiamond在JAVA项目中的三种应用方法实践总结 1.直接读取如下: @Test public static void test_simple(){ PropertiesConfigur ...
- Cocos2d-x v3.1项目创建(三)
Cocos2d-x v3.1项目创建(三) Cocos2d-x官方为我们提供了用于创建.编译.运行和部署的一套命令行的工具集,也就是上篇文章中我们所提到的Cocos2d-Console,它位于我们的引 ...
- (转载)Android项目实战(三十二):圆角对话框Dialog
Android项目实战(三十二):圆角对话框Dialog 前言: 项目中多处用到对话框,用系统对话框太难看,就自己写一个自定义对话框. 对话框包括:1.圆角 2.app图标 , 提示文本,关闭对话 ...
- Android 项目优化(三):MultiDex 优化
在整理MultiDex优化之前,先了解一下Apk的编译流程,这样有助于后面针对MultiDex优化. 一.Apk 编译流程 Android Studio 按下编译按钮后发生了什么? 1. 打包资源文件 ...
随机推荐
- [原创]java WEB学习笔记04:Servlet 简介及第一个Servlet程序(配置注册servlet,生命周期)
本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...
- 从mysqldump整库备份文件中恢复单表
最近,系统更新出现了问题,比较紧急,需要对三张表进行回档.由于我们都是采用mysqldump进行每天全备整库,数据量比较大,一个备份文件大概有70G,需要从这个70G文件中恢复三张表,真是蛋疼至极啊, ...
- 第二章 python中重要的数据结构(下)
二.元组(tuple):不可变序列 跟list一样,也是一种序列,唯一不同的是,元组元素不能被修改,通常用(, ,)表示元组,也可以不加括号. #创建元组 >>> 1,2,3 (1, ...
- CSS3响应式侧边菜单
在线演示 本地下载
- hihocoder 1142 三分求极值【三分算法 模板应用】
#1142 : 三分·三分求极值 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 这一次我们就简单一点了,题目在此: 在直角坐标系中有一条抛物线y=ax^2+bx+c和一 ...
- LINQ 学习路程 -- 查询操作 OrderBy & OrderByDescending
Sorting Operator Description OrderBy 通过给定的字段进行升序 降序 排序 OrderByDescending 通过给定字段进行降序排序,仅在方法查询中使用 Then ...
- JavaScript中call、apply个人理解
JavaScript中call.apply个人理解 一句话即通俗的说:call.apply 是为了改变this的状态而存在的 }; } function personInfo(name,age){ t ...
- 在javascript中使用replace
javascript中使用replace功能很强大,不仅可以替换为字符串,还可以利用正则表达式,对匹配到的字符串为所欲为的进行操作,首先我们来了解一下replace的基本语法 定义和用法 replac ...
- phalcon: 按年分表的model怎么建?table2017,table2018...相同名的分表模型怎么建
phalcon: 按年分表的model怎么建?table2017,table2018...相同名的分表模型怎么建 场景:当前有一张表:Ntime,因为表太大了,考虑要分表: Ntime2017 Nti ...
- Merkle 树——空间换时间,分而治之的hash表,通过根节点是由它的两个子节点内容的哈希值组成来校验数据完整性,定位篡改的数据位置
Merkle 树 图 1.5.6.1 - Merkle 树示例 默克尔树(又叫哈希树)是一种二叉树,由一个根节点.一组中间节点和一组叶节点组成.最下面的叶节点包含存储数据或其哈希值,每个中间节点是它的 ...