【SSH项目实战】国税协同平台-25.查询条件回显

原创 2015年11月18日 10:28:32
我们上次完成了信息发布管理模块的条件查询功能,但是我们有一些问题没有解决,比如信息的"回显"功能。

解释一下回显,例如你翻到100页,这一页有一个信息需要修改,当你点击修改并修改完毕的时候,发现并没有回到之前的第100页,而是回到了第1页!!你是不是就抓狂了?而且你在输入框中的的查询条件也可能改变或消失,这就是没有做数据回显的后果。所以,我们要为我们的这个模块做数据回显功能。

我们去分类查询的依据就是info.title值,如果有,我们就按照那个排序并列出结果,如果没有我们就去取所有的,当我们点击“编辑”“删除”等操作的时候,返回的是InfoAction中的listUI方法,并没有带任何参数过去,那么listUI方法检测到没有info.title参数,那么就会列出所有的结果,到时我们的原来的查询结果丢失。

究其最原始的原因,其实是“重定向”惹的祸。因为“重定向”是转向新的一个jsp页面,后台是不带任何值过去的(包括request都是新的)。我们的info.title就是在重定向过程中丢失的。

我们现在来解决参数丢失的问题来解决“回显”功能。

我们在info的struts配置文件中的list重定向配置中添加一个参数“info.title”:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
	"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
	"http://struts.apache.org/dtds/struts-2.3.dtd">


<struts>
	<package name="info-action" namespace="/tax" extends="base-default">
		<action name="info_*" class="cn.edu.hpu.tax.info.action.InfoAction" method="{1}">
			<result name="{1}">/WEB-INF/jsp/tax/info/{1}.jsp</result>
			<result name="list" type="redirectAction">
				<param name="actionName">info_listUI</param>
				<param name="info.title">${info.title}</param>			
                                <param name="encode">true</param><!-- 需要编码 -->
			</result>
		</action>
	</package>
</struts>

然后在接收info.title的时候我们进行解码:
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页面中,当点击“修改”和“保存”的时候会随之一传至列表界面,就可以带着原来的查询条件回显了。
<s:hidden name="strTitle"/>

然后修改我们的struts的配置文件,将info.title的引用值改为strTitle:
<result name="list" type="redirectAction">
	<param name="actionName">info_listUI</param>
	<param name="info.title">${strTitle}</param>
	<param name="encode">true</param><!-- 需要编码 -->
</result>

我们测试一下:
我们搜索“测试”:


然后点击新增,新增一个叫“新闻摘要22”的文章:

点击保存之后跳转至这个页面:



点击编辑,将"测试1"改为"测试12"

点击保存之后跳转至这个页面:


说明我们的查询条件不在随增删修而发生改变,我们的查询条件回显算是圆满完成了!

下面就是我们发生这个问题的整体原因总结:


至此我们的查询条件回显功能完成。

我们的页面也需要回显,不能因为编辑完回退到第一页而不是刚刚点编辑的那一页,究其原因是我们没有将当前页码pageNo参数传递过去,所以我们在每一个编辑页面都将pageNo作为隐式参数包含进去:
<s:hidden name="pageNo"/>

在进行list重定向的时候我们也把pageNo给包含进去,这里在info-struts.xml中去配置(就是下面的<param name="pageNo">${pageNo}</param>这一句):
<result name="list" type="redirectAction">
	<param name="actionName">info_listUI</param>
	<param name="info.title">${strTitle}</param>
        <param name="pageNo">${pageNo}</param>
	<param name="encode">true</param><!-- 需要编码 -->
</result>

这样就再也不会发生你翻到100页,修改其中某个信息的保存或回退时候,发现并没有回到之前的第100页,而是回到了第1页这种抓狂的情况。

转载请注明出处:http://blog.csdn.net/acmman/article/details/49903111

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

jsp 回显显示select

实现根据不同查询条件查询列表的功能,如图: 查询条件要用form提交:

ssh回显查询的条件值

1.如果是下拉框select的值 格式 :  if(null  !=  "${version}"){ $("#version").val("${version}");        } 2...

springmvc 带查询条件的分页,form的控制范围,怎么包裹条件提交给后台

分页技术发展很多年,我一直想找一个简单好理解的方式去分页,我下面的文章是提供一种思路。因为写的比较跳跃,这文章适合有分页基础的同学。 此篇文章用的技术:springmvc+hibernate+orac...

纳税服务系统【条件查询数据回显、分页】

前言前面我们已经完成了条件查询的功能,可以根据用户给出的条件进行查询数据。但是呢,还是有一些小毛病的。我们来看看:当我们查询数据时候,对查询出来的数据进行操作。操作完毕后,它回到的不是我们查询后的数据...
  • hon_3y
  • hon_3y
  • 2017年06月09日 14:16
  • 361

【Quartz】将定时任务持久化到数据库

阅读目录 > 参考的优秀文章> 用数据库存储定时任务信息> 以MySQL为例子,做个简单的DEMO > 参考的优秀文章 Lesson 9: Job Stores   > 用数据库存储定时任...

【SSH项目实战】国税协同平台-27.分页对象应用&抽取pageNavigator

上次我们完成了信息发布管理模块的分页功能。但是我们还没给其它的模块做分页,所以我们也要去完成其它模块的分页功能。 按照我们给信息发布管理模块编写分页功能的方式去编写,需要大费周章,我们不如把分页功能...

【SSH项目实战】国税协同平台-25.查询条件回显

解释一下回显,例如你翻到100页,这一页有一个信息需要修改,当你点击修改并修改完毕的时候,发现并没有回到之前的第100页,而是回到了第1页!!你是不是就抓狂了?而且你在输入框中的的查询条件也可能改变或...

【SSH项目实战】国税协同平台-24.条件查询分析与实现

我们之前做好了信息发布管理这一块的功能 这次我们就以这个模块为例,去为其添加查询和分页功能。 我们先从查询功能做起: 条件查询(QueryHelper): 1、查询条件语句hql: from 子...

【SSH项目实战】国税协同平台-29.投诉受理查询

我们之前已经成功创建了数据库,现在我们要对建好的表使用“逆向工程”来创建相应的实体类以及映射文件。 我们的“逆向工程”在第五阶段“5.逆向工程.txt”章中已经详细阐述过,这里的过程就不再赘述。 ...

【SSH项目实战】国税协同平台-34.quartz&CronTrigger

我们上次使用quartz任务调度框架创建了一个在后台按照时间间隔不停运行的任务,我们使用的是simpleTrigger简单触发器,为了实现我们的月末自动回复的功能,我们要设置触发器能够在某个精确时间去...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【SSH项目实战】国税协同平台-25.查询条件回显
举报原因:
原因补充:

(最多只允许输入30个字)