1. Ajax 翻页:
1). EmployeeService, EmployeeDao 都不需要有任何的改变
2). 需要在 EmployeeAction 的对应方法中, 返回 JSON 数据, 在页面上进行解析即可.
3). 流程:
①. 导航菜单点击 "员工查询", 此时肯定是要刷新页面的
②. 当页面已经呈现, 点击 "上一页" 等连接时, 需要使用 Ajax 进行分页:
**客户端
--> 需要进行动态改变的区域有: .pagebanner, .its > tbody 中的 tr, 同样的道理, 需要服务器端返回的数据也就是这些
--> 因为 Ajax 分页时, 页面没有刷新, 所以不能直接获取当前页面的页码值, 可以把当前页的页码放在隐藏域中或使其从服务器端返回
--> 解析数据:
更新 .pagebanner
更新 .its > tbody
更新 <input type="hidden" value="1" name="pageNo" id="pageNo"/>
**服务器端
--> 开始的步骤和不使用 Ajax 时相同的:
//1. 获取请求参数
//1). 获取当前页的页码
//2). 从页面获取 PropertyFilter 集合
//2. 调用 employeeService 的 findPage() 方法
--> 只是需要把 Page 对象转为对应 JSON 数据格式. 那么需要转化为什么样的 JSON 格式.
{totalCount: , totalPages: , pageNo: , employees: [{employeeid, : loginname: , employeename: , gender: , loginallow: , deptname: , positionname: , email: }, {...}, ...]}
2. Ajax 删除:
1). 当删除当前记录时,
①. 当前记录为末页的记录
-->但当前页还有其他记录, 就是删除.
-->删除, 相应显示前一页的内容
②. 若不是最后一页
-->删除, 并且从服务器端获取下一页的第一条记录, 添加为当前页面的最后一条记录
2). 需要在分页时, 对 "删除" 链接提供支持
3). 为 "删除" 链接添加 click 事件
①. id 从哪里来?
②. 是否需要添加其他参数?
1) 中的各种要求可以通过:
--> 在服务器端先进行删除操作
--> 在客户端调用 trunPage() 发送 Ajax 请求, 把当前页面重新填充
③. 是否需要从服务器端返回数据; 还是真的直接删除, 而不返回任何信息
返回是否删除成功的信息和删除之后的总页数的信息
④. 当记录无法删除, 即删除出错时, 应该给出对应的提示信息:
-->通过 jQuery.ajax 函数进行控制, 但比较麻烦
-->通过 ajaxError 函数进行提示
1. Ajax 修改员工信息需求:
1). 首先需要在页面上对员工信息进行表单显示 -- Struts 的表单回显
2). 对可以进行 Ajax 修改的字段
①. 当该字段值发生改变时, confirm "确定要修改xx的信息吗?"
--> 点击 "取消": 使该字段恢复为以前的值, 不做任何改变
--> 点击 "确定": 发送 Ajax 请求, 改变该字段的值
2. Ajax 修改员工信息实现:
1). 点击 "取消": 使该字段恢复为以前的值, 不做任何改变: 使用表单的隐藏域 和 js
2). 点击 "确定": 发送 Ajax 请求, 改变该字段的值
①. 需要传递哪些参数: employeeid, propertyName, propertyValue
②. 使用 PropertyUtils.setProperty(employee, propertyName, propertyValue); 方法动态的设置对象的属性值