今天主要实现的是员工信息的翻页设计,用AJAX实现的,接着实现了员工信息的删除实现,总结
一天的知识,感觉jQuery确实是十分有用的一门技术。
1.带复杂条件的分页:(非AJAX分页)
直接把deptid属性过滤加上会导致出现:org.hibernate.QueryException:
这时因为在
Employee 实体类中根本就没有 deptid 属性(并非指在 Employee 类中有该属性,而是要在映射文件中映射该属性).
解决方法:
在 EmployeeDao 中重写 Page<T> findPage(final
Page<T> page, final List<PropertyFilter> filters) 方法, 以解决表单页
面的 deptid和实体类的
dept属性的对应问题
注
意:1.增强 for 循环时, 不能 remove 其元素
2.在
循环时删除集合的元素, 会改变集合的 size 属性
2.AJAX分页设计
1.需要在EmployeeAction的对应方法中,返回JSON数据,在页面上进行解析即可
2.实现过程:
1.点击上一页连接时,需要使用AJAX分页:因为ajax分页时,页面没有刷新,
下一页连接添加AJAX支持
<script
type=”text/javascript”>
$(function(){
$(“#nextpage”).click(function(){
Var
url=”${cp}/employee-list-2.do?pageNo=” + (parseInt($(“#pageNo”).val()) +
1);
var args = $(“:hidden:not(#pageNo)”).serialize();
$.getJSON(url,args,function(data){
$(“.pagebanner”).html(“共”+data.totalCount+”条记录 ”);
$(“#pageNo”).val(data.pageNo);
});
return false;
});
});
</script>
服务器端实现(employeeList2)
1.获取请求参数
String
pageNoStr = request.getParameter(“pageNo”);
2.从页面获取PropertyFilter集合
3.调用service的findPage方法,得到分页数据Page对象
4.将page对象转化为对应的JSON数据格式。那么需要转化为什么样的JSON数据
{totalCount:,totalPages:,pageNo:,employees:[{employeid,:loginName:,gender:,...}] }
5.返回JSON数据
response.setContentType(“text/javascript”);
response.getWritter().print(jsonResult);
3.员工信息
删除功能
1.AjAX删除功能的实现:
1.若当前页已经是最后一页,且当前记录是当前页的最后一条记录,则不能再请求当前页的信息, totalPages不能代表服务器端的总页数
2.Ajax 删除要实现的功能:
1. 弹出confirm(): 确
定要删除吗?
2. 若点击"否",
则文本框或下拉框的值恢复为刚才的默认
值: 使用隐藏域.
3. 若点击"是",
进行ajax
删除
4. 若
员工信息有外键关联时,注
意:通过 ajaxError 函数进行提示,弹出“不能删除该记录”
关键代码:
4.查看员工的详细信息
这样的功能实现在现在来说,已不难实现,我实现了一下,不难!还用了下插件!显示Employee
的头像!
posted on 2010-03-07 23:03
d66380022 阅读(303)
评论(0) 编辑 收藏