天天看點

【SSH項目實戰】國稅協同平台-31.我要投訴功能1

我們之前完成了投訴回複和儲存功能,這次我們将要完成曆史受理資訊的顯示

【SSH項目實戰】國稅協同平台-31.我要投訴功能1

以及資料回顯功能,當然還有使用者編寫投訴資訊的入口,我們這次繼續。

可以注意到,在deilui.jsp上我們之前的投訴人資訊顯示,不管是匿名還是不匿名,投訴人的姓名、手機号碼都是顯示出來的:

我們要做到匿名的使用者名稱不顯示,手機第4-7位不顯示(變為*号),是以,我們要在deilui.jsp上修改這一塊,先去判斷使用者是否匿名狀态, 不匿名就直接顯示使用者手機号碼,如果匿名了,在手機号碼位數合理的情況下,隐藏第5-8位:

這樣在投訴人匿名的時候就不會顯示投訴人的姓名和完整的手機号碼了。

接下來我們來添加曆史回複資訊顯示的功能。這是我們什麼都沒有加時的jsp界面上的靜态資料:

因為我們每次進入恢複投訴界面的時候,已經進行了“懶加載”,我們的曆史回複資訊也是會加載進來的,這個時候我們隻要使用struts去周遊它就可以了。修改後的這一塊的代碼為:

測試,我們點選之前我們回複過的投訴資訊,然後在曆史回複欄中顯示:

【SSH項目實戰】國稅協同平台-31.我要投訴功能1

這樣我們就完成了曆史受理資訊的顯示。

我們接下來完成投訴入口、分頁與資料回顯的功能

先來搞定投訴入口,我們的普通使用者上網需要投訴,就直接在“工作首頁”中去投訴即可:

【SSH項目實戰】國稅協同平台-31.我要投訴功能1

我們的投訴資訊儲存不能寫在complain的action中,因為普通使用者可能沒有操作權限,是以我們要将這個方法寫在公共的action中,即系統主界面的action------homeaction:

我們在homeaction中添加跳轉至投訴資訊填寫頁面的方法:

然後在首頁“我要投訴”地方加上超連結:

然後拿到美工給我們的投訴資訊編輯頁面:

點選“我要投訴”之後的效果:

【SSH項目實戰】國稅協同平台-31.我要投訴功能1

可以看到,我們有個最重要的功能,就是投訴部門選擇之後就會有各個部門的人顯示在“投訴人”這個框框中。

顯然,要完成這個功能,我們就需要寫一個js方法,利用ajax根據部門名稱去查詢該部門下的所有人員姓名,然後顯示在“投訴人”這個框框中。

我們在doselectdept()方法中去完成這個功能:

然後我們在“投訴人”這個框中去顯示我們擷取的該部門的人員清單:

然後我們在homeaction中去完成我們ajax方法中的getuserjson方法:

其中建立json對象我們要引入下列jar包:

commons-beanutils-1.8.0.jar

ezmorph-1.0.6.jar

json-lib-2.3-jdk12.jar

測試:

【SSH項目實戰】國稅協同平台-31.我要投訴功能1
【SSH項目實戰】國稅協同平台-31.我要投訴功能1

但是剛剛我們的getuserjson()方法是在沒有使用架構的情況下去寫的,我們現在使用ssh架構了,可以更簡潔的寫這個方法,是以我們修改getuserjson()方法:

上面的return_map是map對象,包裝要傳回的資料類型,要作為homeaction的全局變量,并添加get和set方法:

然後home-struts.xml配置檔案中加以下配置:

最後别忘記引入struts2-json-plugin-2.3.20.jar的jar包(用來包裝json)

可以看到,在getuserjson2()方法中并沒有拼接json串,我們隻是利用struts的傳回資料包裝機制,來使用“<result type="json"></result>”配置使其将action中傳回的資料(值棧中的return_map)包裝成json資料。

這種寫法充分利用了struts架構傳回json資料的優勢,而且效果與之前是一樣的。

測試之後,結果和之前一樣:

【SSH項目實戰】國稅協同平台-31.我要投訴功能1

下一次我們來完成數值回顯和分頁以及儲存投訴功能。

轉載請注明出處: