小弟新学jsp有很多不懂,请各位大侠指教
我有一个查询界面(一个jsp文件)用来输入一些查询条件,这个页面被提交后会会在另一个页面(SearchResult.jsp)调用一个拼出sql语句的javabean,还会调用一个连接数据库并执行sql语句的javabean,然后再这个页面划出表格, 由于数据比较多所以我采用分页现实的方法,分页语句如下<a href="SearchResult.jsp?page=<%=intPage-1%>">上一页</a>,就是穿了了个page,于是问题就出来了,一点“上一页”这个超链接SearchResult.jsp就会刷新,于是第一次通过查询页面得到的结果集就没了。那个原先拼出的sql语句也得不到了。
请问如何保存第一次拼出得sql语句或是第一次得到得结果集?先谢谢了。
我有一个查询界面(一个jsp文件)用来输入一些查询条件,这个页面被提交后会会在另一个页面(SearchResult.jsp)调用一个拼出sql语句的javabean,还会调用一个连接数据库并执行sql语句的javabean,然后再这个页面划出表格, 由于数据比较多所以我采用分页现实的方法,分页语句如下<a href="SearchResult.jsp?page=<%=intPage-1%>">上一页</a>,就是穿了了个page,于是问题就出来了,一点“上一页”这个超链接SearchResult.jsp就会刷新,于是第一次通过查询页面得到的结果集就没了。那个原先拼出的sql语句也得不到了。
请问如何保存第一次拼出得sql语句或是第一次得到得结果集?先谢谢了。
我做的时候是传参的同时保存到session中
你可以试下
request.getSession().setAttribute("sql_search", sql_search);
List list = db.select(sql_search, 10);
if(!list.isEmpty()){
request.setAttribute("flag", "yes");
}
else{
request.setAttribute("flag", "no");
}
return new ActionForward("/search.jsp");
}
-------------------------------------------------------------------
search.jsp:<logic:notEmpty name="flag">
<logic:equal name="flag" value="yes">
<script>
window.opener.location='selectAll.do?action=selectAll&name=one';
window.opener.alert("查询成功!");
window.close();
</script>
</logic:equal>
<logic:equal name="flag" value="no">
<script>
window.alert("对不起,没有查到相关记录!");
window.history.go(-1);
</script>
</logic:equal>
</logic:notEmpty>
---------------------------------------------------------------------
selectAll.do:
public ActionForward selectAll()
{
String name = request.getParameter("name");
if(name.equals("all"))
{
//查询所有
}
if(name.equals("one")) //条件查询
{
String sql = request.getSession().getAttribute("sql_search").toString();
List list = new DB(ds).select(sql,10);
//对list进行分页 }
return new ActionForward("/list.jsp");
}