关于java session清空前台搜索条件翻页后被清空!

java web问题,解决以后,绝对给你最高分。_百度知道
java web问题,解决以后,绝对给你最高分。
,加判断,那我当期页面需要交互。这个该怎么办了。我不知道怎么处理前前后后我的小项目还是写了有2个月了,这个翻页和上面的对应不起来;&lt,我的数据处理方式是;td&gt?菜鸟求救·····高人飞来啊;td&gt,在jsp页面上循环打印。郁闷的是;tr&gt,我的数据已经由servlet做成二维数组了,1分页
考虑用循序定一个固定的下标,求思路和实现代码。基本功能都达到了预期效果,但现在有三个问题没什么太好的办法;都在循环之中;和&&#47。2筛选
这个基本等于没有办法!3刷新当前页的刷新如何处理,servlet查询数据库,然后传递给jsp页面,显示当然还是页面,做成二维数组;tr&gt,如果要在当前页面做筛选效果,翻页就加倍数下标;&#47。两个问题?不会吧,包括&&lt,是前一个servlet传过来的,数据需要重新获取
来自团队:
其他类似问题
为您推荐:
您可能关注的推广
java的相关知识
其他11条回答
那解决问题啊!
System.out.println(getHibernateTemplate().find(&from Subject as sub where sub.subjectTitle like '%subjectTitle%'&).size());在jsp中显示出来了模糊查询出来的4条结果,但是怎么.size()打印出来的结果是0
精简代码如下(SSH框架做的):
------SubjectDao.java
//查询模糊记录数
public int findQueryCount(final String subjectTitle){
return this.getHibernateTemplate().find(&from Subject as sub where sub.subjectTitle like '%subjectTitle%'&).size(); }
----------SubjectBiz.java
public Result querySubjectByPageAndBysubjectTitle(String subjectTitle,Page page){
//创建分页信息
page = PageUtil.createPage(page, isubjectdao.findQueryCount(subjectTitle));
//通过分页信息获取...
我自己写的结构,100%原生代码,不会用框架,我尽量看看吧
1.分页时候,直接在数据库里面每次查询相应的条数。比如每次只查询100条。一次类推。2.页面不想交互,用ajax。 jquery 有封装。类似1:$(&#divId&).load(&请求路径&);2:$.ajax({
type: &POST&,
url: &action请求路径&,
data: &请求参数&,
success: function(msg){
$(&#div&).html(msg);//返回结果填充div
}}); 3.部分刷新用 ajax 。 全部刷新js :window.location.reload();刷新当前页面。
想吐血了,我太菜了,你写的代码我看不懂。不知道$是什么!
你再 网上 搜搜 jquery
就有了。。学学入门,基本就能用了。$是jquery中的方法
二维数组处理不是很好,如果能考虑到用List,一切迎刃而解。
用过了,警告:object转换成String[][]
以前做j2ee得时候,我用list做和你差不多的事情。我得思路1分页
考虑用循序定一个固定的下标,加判断,翻页就加倍数下标,显示当然还是页面。郁闷的是,这个翻页和上面的对应不起来。整个页面作为一个bean,里面一个属性纪录当前页面记录的index,如果点下页,然后直接从list里面拿。并且更新bean得index. 这样的好处在于下一个页面不管显示多少纪录都可以控制到。2筛选
这个基本等于没有办法,我的数据已经由servlet做成二维数组了,如果要在当前页面做筛选效果,那我当期页面需要交互?不会吧。我不知道怎么处理!筛选的时候,也只需要对list做过滤就可以。同样如果需要排序,还可以直接调用Colletions.sort()方法完成升序/降序排列。3刷新当前页的刷新如何处理,数据需要重新获取,是前一个servlet传过来的。这个该怎么办了?提交form,然后读取最新数据。一家之言,仅供参考。
很简单。。。你的设计有问题。。。你的后台方法也没写好 分页查询 和条件筛选 这些通过一般都是通过HibernateTemplate来实现的,返回都是list&Objet&,当然你可以通过继承泛型类 来返回泛型集合,这样便于规范和页面取值赋值。分页一般都是设置一个分页对象,底层的方法肯定是 query.setFirstResult(page.getStartRecord());
query.setMaxResults(page.getRows());
page.setResult(query.list());//返回的就是分页之后的实体集合。刷新 就更简单了 。window.location.reload();
哦,我的设计有问题,我也这么认为,但是其他的我不会,你的意思,我把每一页的内容变成一个object就可以了吗?那这个不是问题啊,我在servlet以20个下标为单位进行传值,传过来的就是object,然后下一步改怎么处理了?我的数据来源是,servlet-jsp,
现在servlet的值变了,我在jsp上显示的是旧的数据,我在jsp使用window.location.reload(); 就可以吗?你确定?
最好返回的是你的pojo的类型集合。。这样到前台就不需要强转 ,你到前台遍历的时候 肯定就是好多了 直接对象.属性。 你遍历有两种方式 要嘛在servlet 把你的值放在session中 要嘛放在request中 前台就好取了 ,可以用小脚本 也可以用 el表达式去取。然后就是循环了。。我想问下 你的以20个下标为单位传值是什么也是 就是你的分页吗?刷新页面就是那方法 没问题 放心
20是二维数组的行数。显示20行。我点击下一页需要一个触发,好对i变量进行加20这个代码怎么写?
肯定是定义的一个变量啦。。前台需要传的参数至少有两个 一:当前页:二:每页条数:你这每页条数默然是20,给你个思想,。你取出所有数据之后 你可以手动分页 ,定义一个新的数组,例如 你前台传过来的 当前页为:2 ;你就取从数组的21个开始取 取20个 然后放到新的数组里面 然后传到前台 去遍历 就可以了。
想不明白为什么要用二维数组做,查询出来了几个对象中的内容放到一起?
还是考虑LIST 好点。 可以尝试一下改你的SQL 语句。这可以不用想这三个复杂的问题了。逻辑处理感觉变得复杂化了。
也可以贴一下代码!让大家帮忙看看可否改进,不需要用二维数组。
不是我不想贴,是贴不出来
看了楼主的问题,不是非常的明白,不过还是有一点点看法1:分页,按楼主的那个逻辑应该是可以的,比如说先查下标0-9的数据,然后是10-19.。。。依次类推,我刚简单试了一下应该可以,你最好把显示的结果放在div中每次翻页的时候清空再从数组中取数据加载2:筛选,如果分页可以的话,那筛选就也可以,道理是同样的,只不过在数组中根据条件检索里面的数据罢了。3:刷新,如果把数据放在div中,每次清空div,然后又从数组中取出重新加载,用js事件控制,如果这样可以不刷新的,而如果想作其他操作,建议楼主用ajax异步请求。
其他不说,第3个,我的数组都变了,怎么重新加载了?数组来源于servlet,servlet查询数据库。在jsp页面上有个弹出按钮,我点击以后,会把sql中数据删除,但是当前窗口值没变
用ajax传一个页面的方式可以做到既不刷新页面,同时也改变页面状态
好ikfujmcg
这里针对你的第一个和第二个问题建议你去看一下JSTL标签会有帮助,其中C标签肯定管用,因为C标签不仅能够做出循环还能在循环时做嵌套及数据筛选和判断。第三个问题很简单,将那个数据设成session的,request.getSession().setAttribute(arg0, arg1);不要直接用request.setAttribute(arg0, arg1),因为这个数据请求的有效时间太短,用session的话就整个回话期内都可以获得了,这个只是给你一个建议,也不需要你给分了,学习嘛,总是要自己学出来的才管用,别人写给你的总不是自己掌握的,看你还是学的很认真的。
1:是在数据库中查询出全部数据,放入内存。然后分页2:每次点击下一页,进入数据库中查找数据(也就是根据数据库查询限制出你的数据)从你的内容看,是第一种情况吧。这个也很好做判断。比如每页10条数据。页数是pn,每页显示n条数据。可以和你的数组对应。1页(pn-1)*n到(pn*n-1)条数据
在数组中取0-9数据 2页(pn-1)*n到(pn*n-1)条数据
在数组中取 10-193页(pn-1)*n到(pn*n-1)条数据
在数组中取20-29依次类推你应该知道了吧
1、分页问题主要是两个参数,一个是offest,也就是页面数,一个是页面数据个数。利用这两个数就可以计算当前页面的数据。2、筛选,这个应该在数据库查询的where语句里面做,如果要在页面做的话就需要把不匹配的指定行tr的的CSS样式的display属性指定为non,就不显示了。3、刷新,Servlet向JSP做页面传递的时候不要用Redirect,要用requestDispatcher的forward方法,这样的你的页面地址就是Servlet的地址,刷新就不会出问题了。
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁当用户输入查询条件后,根据用户的条件去遍历数据并显示出用户想要看到的内容,这种很简单,不用去描述了。但是有这样一种情况,根据用户输入的条件可能去搜索内容中的任何一段区域,假如用户不想这样,用户想要查询输入的条件在数据最前面的内容,并且优先显示,当输入的条件在内容的最前面没有匹配到的时候,再去查询内容中的值。比如这里有个输入框;用户输入条件后去自动搜索下面这个表格的内容,如果用户输入“SS”那么,表格里面数据段所有带“SS”的item都会出现,就像:假如用户只想让最前面带“SS”的item出现,如果没有的话,再去查询后面的,此时应该这样;$(&#grid&).jqGrid(&clearGridData&);&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&//&首先清空表格原有的数据
var&key&=&$(&#searchInput&).val().toUpperCase();&&&&&&&&&&&&&&&&&&&&&&&&&//然后去获取用户输入的条件,如果是英文做一下大写转化
var&matData&=&[],&matData2&=&[];
$.each(allData,&function(k,&v){
var&str1&=&v.DOName.substring(0,&key.length);
var&str2&=&v.DOName.substring(key,length,v.DOName.length-1);
if(str1.toUpperCase().indexOf(key)&!=&-1){&&&&&&&&&&&&&&&&&&&&&&&&//先去搜索字段前面的值
matData.push(v);&&&&&&&&&&&&//如果有找到匹配的内容保存到数组里面
if&(v.DOName.toUpperCase().indexOf(key)&!=&-1)&{&&&&&&&&&&&&&&&&&&&&//如果没有找到匹配的再去查询所有的内容
matData2.push(v);&&&&&&&&&&&&//如果有找到匹配的内容保存到数组里面(注意这里的数组和上面的数组不是同一个)
&&&&&&&&&//&然后去显示数组的值
if(matData.length&&=&1){
$.each(matData,&function(k,v){
$(&#version-upgrade-grid&).jqGrid(&addRowData&,&k&+&1,&v);
if(matData.length&&=&1&&&&matData2.length&&=&1){
$.each(matData2,&function(k,v){
$(&#version-upgrade-grid&).jqGrid(&addRowData&,&k&+&1,&v);
}最终效果:
-----------------------------------------------------
转载请注明来源此处
微网聚博客乐园 (C)2014 blog.mn886.net 鲁ICP备号&&请教各位大神帮我指点一下:在Java中多条件查询时前台传数据到后台时,后台怎么判断。_百度知道
请教各位大神帮我指点一下:在Java中多条件查询时前台传数据到后台时,后台怎么判断。
把符合条件的查出来返回就可以了,前台有几个文本框是搜索条件。用户有可能传入的是空(就是没有填),可以都填也可以选填,简单的说就是后台怎样去实现这个功能请教各位大神帮我指点一下:在Java中多条件查询时前台传数据到后台时,后台怎么判断
提问者采纳
.不论个数 判断不为空后直接在查询语句后面拼接符合条件的查询语句即可直接 使用 判断是否为空即可 不用管有多少个。(&quot? &)if(参数A不为空){
拼接(&quot.;select * from table_A where 1=1 &quot,参数A)}; and 参数A =
谢谢!解决了。
提问者评价
来自团队:
其他类似问题
为您推荐:
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁Java里的对象在程序结束后会被立刻清除吗?_百度知道
Java里的对象在程序结束后会被立刻清除吗?
finalise()方法可不可以清楚对象,是这样吗?有没有办法强制销毁我看到有的书上说只有在虚拟机认为内存不多的时候才会销毁对象
System.gc()是清除当前的所有对象还是不再被引用的对象?
提问者采纳
你直接调用finalise()这个只能把人家遗书读了一遍,建议你别这么做.gc()只回收垃圾对象,这个过程是很耗费资源的过程正常情况是在内存不够时进行垃圾回收,他会把当前运行的程序停下来,特别是一般情况下不要自己去手动调用垃圾回收,但是人家不会这个时候就死的,只会让程序更卡,然后进行垃圾回收。最后建议写程序的时候。finalise()方法是该对象被回收前要调用的方法,就是这个对象的遗书了,System。System,尽量不要把太多启动垃圾回收。绝大多数情况下垃圾回收机制还是可以让人接受的.gc()也可以强行进行垃圾回收,就是没有引用的对象
其他类似问题
为您推荐:
其他2条回答
创建对象obj = null.gc();取消对该对象的引用S&#47finalise()方法是在对象销毁之前会调用的方法不能用来清除对象当没有引用引用到某个对象的时候这个对象就可能会在未来的某个时刻销毁也可以通过调用S///清除对象S/&#47:Object obj = new Object();方法手动销毁对象例如.gc()
虚拟机销毁对象是随机的,不可预测的,没有办法强制销毁;System.gc()只是通知虚拟机可以进行销毁了,销不销毁都是看虚拟机,它自己并不会做什么清除的工作;fianlise()方法只是当虚拟机在清除对象之前调用,人为控制不了;总之一句话,销毁对象完全由虚拟机控制,程序员能做的就是通知虚拟机可以销毁了,但不能控制。
程序结束的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁

我要回帖

更多关于 java前台 的文章

 

随机推荐