学而时嘻之 2018-03-17
我们公司有个很牛逼的女生,是我们项目组的核心人物之一,一般我有啥不懂的就问她,就在昨天我们讨论一件关于缓存的事情,我觉得在类中,用static定义的引用变量就是缓存(因为在以前的公司就这么叫),而她认为这并不是,这个只是存在内存里的,这只是一个成员变量,所以他觉得只能叫变量,牛逼的大佬们你们觉得叫什么呢?
闲话不多说,咱先看代码:
需求:因为客户反应,每次在页面删除或者编辑的时候,总是跳到起始页面,不能返回到他们操作前的页面上去,所以希望有一个功能可以让我在当前页面做的任意操作,只要不关闭这个页面的情况下,都保留查询条件和页数,跟操作前一样。
思路:这还用想,备忘录模式走起啊!!
代码:
private static Map<String,Object> map = new HashMap<String,Object>();//定义一个备忘录<br /> <br />public void remenber(OdsXsXscb odsXsXscb<em><em>){//截取使用备忘录代码</em></em>
<em> String flag = request.getParameter("search");//如果查询进来的flag就有值否则为空</em>
<em>if(odsXsXscb.getId()==null&&flag==null){//如果不是查询进来的<br /> OdsXsXscb param = (OdsXsXscb) map.get(ses.getId());//从备忘录中取值<br /> if(param == null){//如果备忘录中没有值<br /> odsXsXscb.setException("1");//给个默认的搜索条件的值<br /> }else{//如果有值<br /> odsXsXscb = param;//将备忘录中的值取出来给与参数<br /> }<br />}else{//如果是查询进来的则保存入备忘录后不做任何操作<br /> map.put(ses.getId(),odsXsXscb);<br />}<br />}</em>
@RequestMapping(value = "clear")<br />public void crearParam(HttpSession ses){<br /> map.remove(ses.getId());//如果关闭窗口则移除备忘录记录<br />}<br /><br />我觉得这个模式使用后好方便,本来的想法是再删除的时候或者是修改的时候,都把数据拼接到地址后面,然后通过搜索条件用用input标签接收这个数据,然后又传入到后台,传值传的会想死。。<br />自从用了备忘录模式,大家都说好,连一直否定我的这位小姐姐,也表扬我思路清晰,