今天主要實現(xiàn)的是員工信息的翻頁設(shè)計,用AJAX實現(xiàn)的,接著實現(xiàn)了員工信息的刪除實現(xiàn),總結(jié) 一天的知識,感覺jQuery確實是十分有用的一門技術(shù)。
1.帶復(fù)雜條件的分頁:(非AJAX分頁)
直接把deptid屬性過濾加上會導(dǎo)致出現(xiàn):org.hibernate.QueryException:
這時因為在 Employee 實體類中根本就沒有 deptid 屬性(并非指在 Employee 類中有該屬性,而是要在映射文件中映射該屬性).
解決方法:
在 EmployeeDao 中重寫 Page<T> findPage(final Page<T> page, final List<PropertyFilter> filters) 方法, 以解決表單頁 面的 deptid和實體類的
dept屬性的對應(yīng)問題
注 意:1.增強 for 循環(huán)時, 不能 remove 其元素
2.在 循環(huán)時刪除集合的元素, 會改變集合的 size 屬性
2.AJAX分頁設(shè)計
1.需要在EmployeeAction的對應(yīng)方法中,返回JSON數(shù)據(jù),在頁面上進行解析即可
2.實現(xiàn)過程:
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>
服務(wù)器端實現(xiàn)(employeeList2)
1.獲取請求參數(shù)
String pageNoStr = request.getParameter(“pageNo”);
2.從頁面獲取PropertyFilter集合
3.調(diào)用service的findPage方法,得到分頁數(shù)據(jù)Page對象
4.將page對象轉(zhuǎn)化為對應(yīng)的JSON數(shù)據(jù)格式。那么需要轉(zhuǎn)化為什么樣的JSON數(shù)據(jù)
{totalCount:,totalPages:,pageNo:,employees:[{employeid,:loginName:,gender:,...}] }
5.返回JSON數(shù)據(jù)
response.setContentType(“text/javascript”);
response.getWritter().print(jsonResult);
3.員工信息 刪除功能
1.AjAX刪除功能的實現(xiàn):
1.若當(dāng)前頁已經(jīng)是最后一頁,且當(dāng)前記錄是當(dāng)前頁的最后一條記錄,則不能再請求當(dāng)前頁的信息, totalPages不能代表服務(wù)器端的總頁數(shù)
2.Ajax 刪除要實現(xiàn)的功能:
1. 彈出confirm(): 確 定要刪除嗎?
2. 若點擊"否", 則文本框或下拉框的值恢復(fù)為剛才的默認 值: 使用隱藏域.
3. 若點擊"是", 進行ajax 刪除
4. 若 員工信息有外鍵關(guān)聯(lián)時,注 意:通過 ajaxError 函數(shù)進行提示,彈出“不能刪除該記錄”
關(guān)鍵代碼:
4.查看員工的詳細信息
這樣的功能實現(xiàn)在現(xiàn)在來說,已不難實現(xiàn),我實現(xiàn)了一下,不難!還用了下插件!顯示Employee 的頭像!