庭審管理中動態顯示今天起7日內的數據,動態查詢,並根據已有數據判斷新增和修改時的時間衝突問題

    拿到這個模塊,有點慌神。因爲技術比較淺薄。

    仔細分析模塊的結構,確定出幾個技術難點:

    1.動態查詢法庭列表,完成動態列表的第一列。需要使用到c:foreach,並且需要從後臺傳入數據。

    2.表頭的生成,表頭是根據當前的時間,查詢到從今天起一週內的所有日期進行拼裝,此時用到在網上查詢的FORMAT函數,將時間轉換成需要的格式。

    3.動態給左、上兩個條件確定的表格的每一個td,動態拼接一個ID。

    4.設置按鈕上週、下週、本週,進行對日期的動態查詢。

    分析到這裏,頓時感覺一個頭兩個大。因爲如果使用雙層的<c:foreach>循環,必定造成id的動態分配有問題。於是,對一週的日期採用固定格式的方式,畢竟一週有7天這個是

固定的。並且如果需要給td動態id,那麼最好的方式就是根據查詢出的法庭的id以及日期td的id進行動態分配,所以給每個表頭寫id。

    所以動態表格的建立成功,在生成動態表格的時候採用c:foreach中的begin和end屬性,設置爲1和7,varStatus設爲k。 動態id=${houseId_td${k.index}}。拼接成功。在設置這個id的時候走入了一個誤區:認爲在進行對星期的跳轉的時候,

每個動態id都必須與其他的不同。其實不必如此麻煩,只需要在進行星期跳轉的時候,對td設置class屬性,調用jquery中的$(".class").text("");方法,將值全部清空即可。

    由於在點擊上週、下週、本週按鈕的時候需要進行對數據的查詢,需要使用ajax的異步查詢功能。所以單獨設定一個方法命名爲Click方法。 在其中定義了URL地址:設定action中的方法,以及傳入的參數。值得注意的是,在參數傳入周由於

是String格式的,所以需要將其轉換成相應的格式,此時的格式是Date。 並且根據參數拼接相應的方法來完成對hql語句的動態拼接。在這裏需要設定在傳入的兩個時間參數之間。使用filters.add(new PropertyFilter("GED_openTime", d1))及

filters.add(new PropertyFilter("LED_openTime", d2)),將查詢到的數據返回到界面中。此時最重要的是根據houseId和循環次數J去動態拼接動態td中的顯示內容。使用jquery的append函數進行拼接。將每一條數據拼接成爲一個鏈接(實際就是

append裏面使用a標籤進行拼接)。添加onclick給a標籤。

    接下來繼續分析需求:

    5.根據連接查詢數據庫,並可以將每個標籤對應的內容顯示在一個view.jsp界面上。

    6.查看流程:需要先預定法庭,編輯開庭排期之後,才能進行對筆錄、預定人、預定單位的填寫。

    根據沒一個連接去查詢數據,顯然是要使用ajax的異步查詢操作。由於在上文寫到的異步查詢中已經查詢到了全部的數據,內容全部存放在data.message中,所以此時最簡便的操作是:給onlick="showList(id)"方法寫參數,內容就是

data.message[i].id,就很輕鬆的找到了每一條數據的id,當點擊的時候使用jquery easyui中的dialog方法,將view.jsp界面的內容顯示在一個彈出框上,顯示必要的信息。

    由於流程的關係,預定法庭時我們只需要輸入法庭用途、是否可公用、開庭日期、所在法庭、開始、結束時間。而在正式開庭的時候進行記錄數據。 如果只是用一個界面,雖然能實現功能,但是需要使用很多c:if標籤來完成不同時候對界面

的顯示效果,這樣並不好。所以我使用了兩個界面。 相應的就需要在action中添加對應的方法,並且在list.jsp界面上添加相應的按鈕。此時aciton方法就會有所不同,因爲一個是新建,另一個是修改,這個功能的實現不難,暫且跳過。

    7.開始時間和結束時間都是以開庭日期爲標準的,在界面上只顯示hh:mm:ss的格式,傳遞入後臺的數據不全,需要去後臺進行處理。

    因爲開始時間和結束時間的關係,所以我們需要進行後臺拼接數據。 最開始的時候我是在實體類中進行的拼接,發現並沒有成功,仔細想想發現如果在實體類中修改了方法,那麼其他模塊調用的時候會出現問題,並且修改了實體類的方法後

會造成數據插入失敗。此時,採用的辦法是修改jsp界面開始和結束時間的name屬性(調用get和set方法的橋樑),在實體類中設置一個新的屬性,例如beginTimes,添加get和set方法,並使用@TRANSIENT註解。於是在action的save方法中進行的操作:

拼接日期和時分秒,使之能夠正確插入數據庫。獲取數據的時候使用的是beginTimes的get方法,但是將數據插入數據庫時,使用的是beginTime的set方法,於是就需要對String進行轉換,變成date類型

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章