Repage介绍
Repage的意思是:回到原页面。当在web页面中的列表,修改、删除记录之后,回到原页面。
用途
我使用用户管理功能,按“地区”查询数据,查询出北京地区的用户列表,修改、删除其中的一条之后(非ajax),页面刷新了。
应回到“北京地区的用户列表”,也就是带原始的查询参数,我可以继续修改或删除其它的行。
示例
有一个列表页,总共有数据50条,我搜索:地区=北京 的数据有10条,我想修改这个10条数据。
我想每修改完一条,页面刷后,再次回到 按条件搜索:地区=北京 的列表,还显示这10条数据,我可继续修改工作。
原理
使用了spring mvc的Interceptor,在每进入一个Controller的方法时,把request中的全部参数都取出来,放入一个map中,map被放入缓存中。
map的key是映射的路径名,值是全部参数串
当发生了重定向,并且带在repage参数,框架会查检重定向的目标,取出重定向的目标的路径做为key,从map中取参数串,如何不为空,就带参数重定向,实现了“回到原来的页面”。
配置
修改spring-mvc-xxx.xml文件,加入以下spring的拦截器
使用方法
在spring mvc框架的Controller中,当你完成“修改”和“删除”工作后,为了防止表单重复提交,应当重定向到成功页(列表页)。
并且带有repage参数,告诉框架你想“回到原来的页面”。 例如:
return "redirect:"+Global.getMemberPath()+"/buy/purchaesOrder/purchaesOrder.htm?repage";
两个要素:必须以redirect:开头,必须带有repage参数。
示例截图: