客户需求:在做注入修改之类的操作时,保存成功后,会到列表页时,会直接跳转到默认查询页面,而无法保留上一次的查询条件。洗完修改保存后,能够直接会到上次的查询页。
解决方案:
一开始偷懒,直接保存成功后,使用history.go(-1) 返回上一页。但是这样的话,就无法刷新上一个页面,将修改的结果体现在列表页中。
后面采用了一个优化的方案,答题的思路是,将查询页面的查询条件塞到session中,在进行修改等操作后,需要返回到上一个页面时,从session中将这些条件取出来,拼接成跳转路径,通过location.href方式会到上一页,实现刷新效果。
代码如下:
后台(将查询条件保存到session)
//将查询参数保存到session
request.getSession().setAttribute("plBack", "pageNo="+pageBean.getPageNo()+ item.toUrlString());
//在item实体中添加toUrlString方法
public String toUrlString() {
String url = "";
//父类参数必须使用get方法获取
if (StringUtils.isNotEmpty(getId())) {
url += "id=" + getId() + "&";
}
//树脂类型参数不可使用isNotEmpty方法
if (minAmount!=null) {
url += "minAmount=" + minAmount + "&";
}
//Date类型参数需要先进行转换
if (createDate != null) {
url += "createDate =" + FastDateFormat.getInstance("yyyy-MM-dd").format(createDate ) + "&";
}
if(!"".equals(url)){
url = "&"+url;
url = url.substring(0,url.length()-1);
}
return url;
}
前端处理(从session将参数取出来,拼接成目标路径)
var plBack = '${plBack}';
location.href = "/path1/action1.htm?" + plBack;