我們公司有個很牛逼的女生,是我們項目組的核心人物之一,一般我有啥不懂的就問她,就在昨天我們討論一件關於緩存的事情,我覺得在類中,用static定義的引用變數就是緩存(因為在以前的公司就這麼叫),而她認為這並不是,這個只是存在記憶體里的,這隻是一個成員變數,所以他覺得只能叫變數,牛逼的大佬們你們覺得叫什 ...
我們公司有個很牛逼的女生,是我們項目組的核心人物之一,一般我有啥不懂的就問她,就在昨天我們討論一件關於緩存的事情,我覺得在類中,用static定義的引用變數就是緩存(因為在以前的公司就這麼叫),而她認為這並不是,這個只是存在記憶體里的,這隻是一個成員變數,所以他覺得只能叫變數,牛逼的大佬們你們覺得叫什麼呢?
閑話不多說,咱先看代碼:
需求:因為客戶反應,每次在頁面刪除或者編輯的時候,總是跳到起始頁面,不能返回到他們操作前的頁面上去,所以希望有一個功能可以讓我在當前頁面做的任意操作,只要不關閉這個頁面的情況下,都保留查詢條件和頁數,跟操作前一樣。
思路:這還用想,備忘錄模式走起啊!!
代碼:
private static Map<String,Object> map = new HashMap<String,Object>();//定義一個備忘錄
public void remenber(OdsXsXscb odsXsXscb){//截取使用備忘錄代碼
String flag = request.getParameter("search");//如果查詢進來的flag就有值否則為空
if(odsXsXscb.getId()==null&&flag==null){//如果不是查詢進來的
OdsXsXscb param = (OdsXsXscb) map.get(ses.getId());//從備忘錄中取值
if(param == null){//如果備忘錄中沒有值
odsXsXscb.setException("1");//給個預設的搜索條件的值
}else{//如果有值
odsXsXscb = param;//將備忘錄中的值取出來給與參數
}
}else{//如果是查詢進來的則保存入備忘錄後不做任何操作
map.put(ses.getId(),odsXsXscb);
}
}
@RequestMapping(value = "clear")
public void crearParam(HttpSession ses){
map.remove(ses.getId());//如果關閉視窗則移除備忘錄記錄
}
我覺得這個模式使用後好方便,本來的想法是再刪除的時候或者是修改的時候,都把數據拼接到地址後面,然後通過搜索條件用用input標簽接收這個數據,然後又傳入到後臺,傳值傳的會想死。。
自從用了備忘錄模式,大家都說好,連一直否定我的這位小姐姐,也表揚我思路清晰,