我的系统都已经做完了,才发现一个严重的问题。分页时,查询条件Jcxh为空的时候,点下一页就什么记录也没有了。也就是没有进行查询的初始页面,没有办法点下一页,因为Jcxh没有任何值,所以点下一页一条记录也没有。怎么办啊。
<% String Jcxh=request.getParameter("jcxh");%>
………………
………………<div align="right" >

 <a href="<%=selfweb%>_bh.jsp?jcxh=<%=Jcxh%>">第一页 <a>

<% if (ShowPage==1)
out.println("<img  border='0' src='../images/1-prev.gif'>");  
   else {
    %>
<a href="<%=selfweb%>_bh.jsp?page=<%=ShowPage-1%>&jcxh=<%=Jcxh%>"><img border="0" src="../images/1-prev.gif"> <a>
    <% }
if (ShowPage==PageCount)
out.println("<img border='0' src='../images/1-next.gif'>");  
                 else {%>
<a href="<%=selfweb%>_bh.jsp?page=<%=ShowPage+1%>&jcxh=<%=Jcxh%>"><img border="0" src="../images/1-next.gif"> <a>
<% } %>
<a href="<%=selfweb%>_bh.jsp?page=<%=PageCount%>&jcxh=<%=Jcxh%>">最后一页 <a>
            </div>
如果点一下搜索的文本框(Jcxh),里面什么也不输入,那么所有的记录就会显示出来,点下一页也没有问题。文本框中输入查询条件也可以正确显示。但是如果没有Jcxh的传入值,不是从查询页面,而是从其他页面连接进来,就只能显示第一页,点下一页就什么都没有了。我归结为没有传入Jcxh这个值,这个值为空,我已经想了好多办法都不行。我做过的尝试赋初始值
曾经在<% String Jcxh=“”;
          Jcxh=request.getParameter("jcxh");%>
结果没用。我又想调用页面,可是怎么编译也通不过。
                    <%if (Jcxh!=null)
   {%>
   <% include file="next1.jsp";}
   else { %>
   <%include file="next.jsp";}%>其中next1.jsp为:
<div align="right" >



            <a href="<%=selfweb%>_bh.jsp?jcxh=<%=Jcxh%>">第一页 <a>


<% if (ShowPage==1)
               out.println("<img  border='0' src='../images/1-prev.gif'>");  
   else {
    %>
<a href="<%=selfweb%>_bh.jsp?page=<%=ShowPage-1%>&jcxh=<%=Jcxh%>"><img border="0" src="../images/1-prev.gif"> <a>
    <% }
 if (ShowPage==PageCount)
                 out.println("<img border='0' src='../images/1-next.gif'>");  
                 else {%>
<a href="<%=selfweb%>_bh.jsp?page=<%=ShowPage+1%>&jcxh=<%=Jcxh%>"><img border="0" src="../images/1-next.gif"> <a>
<% } %>
<a href="<%=selfweb%>_bh.jsp?page=<%=PageCount%>&jcxh=<%=Jcxh%>">最后一页 <a>
            </div>
next.jsp为:
<div align="right" >
            <a href="<%=selfweb%>_bh.jsp">第一页 <a>
<% if (ShowPage==1)
               out.println("<img  border='0' src='../images/1-prev.gif'>");  
   else {
    %>
<a href="<%=selfweb%>_bh.jsp?page=<%=ShowPage-1%>"><img border="0" src="../images/1-prev.gif"> <a>
    <% }
 if (ShowPage==PageCount)
                 out.println("<img border='0' src='../images/1-next.gif'>");  
                 else {%>
<a href="<%=selfweb%>_bh.jsp?page=<%=ShowPage+1%>"><img border="0" src="../images/1-next.gif"> <a>
<% } %>
<a href="<%=selfweb%>_bh.jsp?page=<%=PageCount%>">最后一页 <a>
            </div>也就是一个传值一个不传值。唉,那个空白文本框到底传了什么值?怎么表示出来,怎么取用啊。有没有高手帮我一下

解决方案 »

  1.   

    不是很复杂啊,帮帮我啊,一共也就是四句话,第一页,上一页,下一页,最后一页。我都急死了。为什么没有传入Jcxh就一条记录也没有啊。我到现在也没有想通。我有默认的sql语句的。
    String sql="select id,jcxh,jcxhname,jcxhbz,convert(varchar(10),jcxhtime,120)as jcxhtime from JCXH order by id desc";
     
      String Jcxh=request.getParameter("jcxh");  
      
        if(Jcxh!=null)
      {
        Jcxh=new String(Jcxh.getBytes("iso-8859-1"),"gb2312") ;
        sql="select * from JCXH where jcxh like '%"+Jcxh+"%'";
    }
      

  2.   

    你的JSP页面好乱,JAVA夹在HTML中,看都看不懂,LZ为何不尝试一下用标签或者其他呢
      

  3.   

    如果需要多次传一个参数,应该把它写在session里面吧?否则没有这个参数的话,应该是会传null值到最后,而sql不能直接把null改为“”空字符串。lz应该在运行sql之前判断一下Jcxh的值,如果是null,则不能直接用上边的sql了。
      

  4.   

    很乱吗?可能越想说清楚就越说不清楚。简单点说就是:
    1、空的文本框传得值是什么?
    2、以下代码在运行时,由于没有Jcxh值传入,有什么办法使的程序正常运行。前提这个变量不能删除,因为如果想做查询的时候,就会有Jcxh传入。<% String Jcxh=request.getParameter("jcxh");%>
    ………………
    <a href="<%=selfweb%>_bh.jsp?page=<%=ShowPage-1%>&jcxh=<%=Jcxh%>">下一页<a>
      

  5.   

    空的文本框传的当然是空值
    jcxh这个变量到底是存的什么值
      

  6.   

    在servlet里先付初值呢?
    (类似struts toList的概念?)
      

  7.   

    我用的架构是jsp+javabean。我不用servletJcxh是用来存查询条件的。可是初始的时候并没有查询,只是装载。只要进行了查询以后,程序就没有任何问题了。
      

  8.   

    if(page==null || page=="")page=1;
      

  9.   

    我试过了。我用的是
    if(Jcxh==null)
    {sql="select id,jcxh,jcxhname,jcxhbz,convert(varchar(10),jcxhtime,120)as jcxhtime from JCXH order by id desc";}
    else{
    sql="select id,jcxh,jcxhname,jcxhbz,convert(varchar(10),jcxhtime,120)as jcxhtime from JCXH where Jcxh like '"+Jcxh+"';
    }
    可是还是没有用。我快累死了。
      

  10.   

    初值是空的话查询时候不用JCXH这个条件
    不为空的话把JCXH这个条件加进去,看上去没问题
    怎么到页面就有错了呢,只不过为空的时候返回的是所有记录
    不为空的时候返回的是JCXH LIKE JCXH的记录
      

  11.   

    是啊,所以我想来想去只有一个原因,就是:
    <a href="<%=selfweb%>_bh.jsp?page=<%=PageCount%>&jcxh=<%=Jcxh%>">最后一页 <a>
    是不是不能传null值?怎么办呢
      

  12.   

    如果没报异常,在页面判断下 JCXH是否为空,为空的话给他初始化""会DEBUG的话,用DEBUG一步步走下来,问题就比较清楚了
      

  13.   

    没有啊。。就是初始化的时候都好好的,只要点了最后一页,或者下一页,表中的内容就空了。
    非要点一下查询才出来。也就是给Jcxh传了值吧
      

  14.   

    你的JCXH值是放在一个TEXTBOX里的?然后点查询提交表单,是按钮对吗?而最后一页,下一页都是文本链接,我说的对吗?P.S 你说点查询猜出来,页就是给JCXH传值?你的JCXH到底是通过URL传的还是文本框传的啊
      

  15.   

    在查询页面中,JCXH值是放在一个文本框中,点查询按钮,这个值就传到了显示页面,这样程序就是很正常的。
    但是直接连接到显示页面时,就没有Jcxh传入了,所以问题就出现了。
    谢谢你,水木年华,一直在帮我
      

  16.   

    空的文本框传入的值是什么啊?
    答:是""
    if(Jcxh.equals(""))
    {
      ...............
    }
      

  17.   

    你在查询页面中输入JCXH值查询出来点下一页或者最后页能看到记录吗?
      

  18.   

    我的帖子结题结不了了,不要回复了,我已经搞定了。提示说:贴子回复次数大于跟给分次数,我也不知道怎么把分给你啊,水木年华,还有yirentianran() ,两个人。
      

  19.   

    对于身份验证这个问题由另一个解决的方法。如果有一个 ascx 会被每一个aspx引用的话,那么可以在这个ascx里面验证。为了提高效率可以考虑吧代码写在 oninit 里面,因为这个会在 aspx 的load之前执行,而ascx的load会在 aspx 的load之后执行。