本文共 2239 字,大约阅读时间需要 7 分钟。
然后在接收info.title的时候我们进行解码:/WEB-INF/jsp/tax/info/{1}.jsp info_listUI ${info.title} true
info.setTitle(URLDecoder.decode(info.getTitle(),"utf-8"));这样我们每次在重定向的时候就会将这个参数一并传过去,我们的搜索结果又会重新回显出来。 测试: 搜索“1”: 结果: 编辑一个 点击“返回”后结果: 说明我们的回显暂时完成,但是我们还有问题: 当我们搜索“测试”的时候,出现以下结果: 然后我们点击“新增”: 添加标题是“新闻前线11”,然后点击保存: 保存之后返回的是这样的结果; 很显然这不是我们需要的,我们需要的是之前搜索“测试”的时候的结果列表,这里是因为我们新增的info.title覆盖了原来的info.title条件。 我们解决这个问题。 既然我们的info.title会因为增删改而改变,那么我们就把之前的info.title保存在一个临时变量里,不管之后info.title或者info再发任何改变,我们之前搜索使用的info.title值都不会再丢失或覆盖: 这里我们在InfoAction中把这个临时变量设为:
private String strTitle;public String getStrTitle() { return strTitle;}public void setStrTitle(String strTitle) { this.strTitle = strTitle;}然后在InfoAction中的新增页面跳转方法addUI、编辑页面跳转方法editUI、删除方法delete以及异步信息发布publicInfo方法中添加此代码(创建或更新、取得info前):
//解决查询条件覆盖的问题strTitle=info.getTitle();然后我们在“编辑”“新增”的填写数据的页面把strTitle值当做隐藏数据放置在jsp页面中,当点击“修改”和“保存”的时候会随之一传至列表界面,就可以带着原来的查询条件回显了。
然后修改我们的struts的配置文件,将info.title的引用值改为strTitle:
我们测试一下: 我们搜索“测试”: 然后点击新增,新增一个叫“新闻摘要22”的文章: 点击保存之后跳转至这个页面: 点击编辑,将"测试1"改为"测试12" 点击保存之后跳转至这个页面: 说明我们的查询条件不在随增删修而发生改变,我们的查询条件回显算是圆满完成了! 下面就是我们发生这个问题的整体原因总结: 至此我们的查询条件回显功能完成。 我们的页面也需要回显,不能因为编辑完回退到第一页而不是刚刚点编辑的那一页,究其原因是我们没有将当前页码pageNo参数传递过去,所以我们在每一个编辑页面都将pageNo作为隐式参数包含进去:info_listUI ${strTitle} true
在进行list重定向的时候我们也把pageNo给包含进去,这里在info-struts.xml中去配置(就是下面的<param name="pageNo">${pageNo}</param>这一句):
info_listUI ${strTitle} ${pageNo} true
这样就再也不会发生你翻到100页,修改其中某个信息的保存或回退时候,发现并没有回到之前的第100页,而是回到了第1页这种抓狂的情况。
转载请注明出处: