随笔-54  评论-0  文章-2  trackbacks-0

今天主要实现的是员工信息的翻页设计,用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+”条记录&nbsp;”);

$(“#pageNo”).val(data.pageNo);

});

return false;

});

});

</script>


服务器端实现(employeeList2

1.获取请求参数

String pageNoStr = request.getParameter(“pageNo”);

2.从页面获取PropertyFilter集合

3.调用servicefindPage方法,得到分页数据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 阅读(298) 评论(0)  编辑  收藏