javaweb-java代码中没法执行首页、上一页、下一页操作

问题描述

java代码中没法执行首页、上一页、下一页操作

emp_list.jsp调用split_page_plugin.jsp实现对数据库表的分页查询和模糊查询操作,但是最后出来的效果无法实现分页查询中的首页、上一页、下一页操作操作,相应按钮也不亮,如图,我用的是mysql数据库,请高手帮我调试一下,非常感谢,相应代码如下:

emp_list.jsp

 <%@ page contentType="text/html" pageEncoding="GBK"%>
<%@ page import="java.sql.*" %>
<html>
<head><title>www.mldnjava.cn,MLDN高端Java培训</title>
<style type="text/css">
<!--
.STYLE6 {font-size: 12px}
.STYLE10 {font-size: 14px; font-weight: bold; }
-->
</style>
</head>
    <script language="javascript">
        function changeColor(obj,color){
            obj.bgColor = color ;
        }
    </script>
<body>
<%!
    public static final String URL = "emp_list.jsp" ;
%>
<%!
    public static final String DBDRIVER = "org.gjt.mm.mysql.Driver";
    public static final String DBURL = "jdbc:mysql://localhost:3306/mldn";
    public static final String DBUSER = "root";
    public static final String DBPASSWORD = "toor";
%>
<%
    Connection conn = null ;
    PreparedStatement pstmt = null ;
    ResultSet rs = null ;
%>
<%
    int currentPage = 1 ;   // 为当前所在的页,默认在第1页
    int lineSize = 3 ;      // 每次显示的记录数
    int allRecorders = 0 ;  // 表示全部的记录数
    String keyWord = request.getParameter("kw"); //接收查询关键字
%>
<%
    try{
        currentPage = Integer.parseInt(request.getParameter("cp")) ;
    } catch(Exception e) {}
    try{
        lineSize = Integer.parseInt(request.getParameter("ls")) ;
    } catch(Exception e) {}
    if(keyWord == null){
       keyWord = "";
    }
%>
<%
    Class.forName(DBDRIVER) ;
    conn = DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD) ;
        String sql =    "SELECT COUNT(empno) FROM emp " +
                    " WHERE empno LIKE ? OR ename LIKE ? OR job LIKE ? OR DATE_FORMAT(hiredate,'yyyy-mm-dd') LIKE ? " +
                    " OR sal LIKE ? OR comm LIKE ? " ;
    pstmt = conn.prepareStatement(sql) ;
    pstmt.setString(1,"%"+keyWord+"%") ;
    pstmt.setString(2,"%"+keyWord+"%") ;
    pstmt.setString(3,"%"+keyWord+"%") ;
    pstmt.setString(4,"%"+keyWord+"%") ;
    pstmt.setString(5,"%"+keyWord+"%") ;
    pstmt.setString(6,"%"+keyWord+"%") ;
    rs = pstmt.executeQuery() ;
    if(rs.next()){  // 取得全部的记录数
        allRecorders = rs.getInt(1) ;
    }
%>
<center>
    <h1>雇员列表</h1>
<jsp:include page="split_page_plugin.jsp">
    <jsp:param name="allRecorders" value="<%=allRecorders%>"/>
    <jsp:param name="url" value="<%=URL%>"/>
</jsp:include>
<TABLE BORDER="1" cellpadding="5" cellspacing="0" bgcolor="F2F2F2" width="100%">
    <TR onMouseOver="changeColor(this,'white')" onMouseOut="changeColor(this,'F2F2F2')">
        <td align="center" valign="middle"><span class="STYLE10">编号</span></td>
        <td align="center" valign="middle"><span class="STYLE10">姓名</span></td>
        <td align="center" valign="middle"><span class="STYLE10">职位</span></td>
        <td align="center" valign="middle"><span class="STYLE10">雇佣日期</span></td>
        <td align="center" valign="middle"><span class="STYLE10">工资</span></td>
        <td align="center" valign="middle"><span class="STYLE10">奖金</span></td>
    </TR>
<%
sql = " SELECT * FROM emp WHERE empno LIKE ? OR ename LIKE ? OR job LIKE ? OR DATE_FORMAT(hiredate,'yyyy-mm-dd') LIKE ? "+
      "OR sal LIKE ? OR comm LIKE ?  ORDER BY empno LIMIT ? , ? ";
pstmt = conn.prepareStatement(sql) ;
pstmt.setString(1,"%"+keyWord+"%");
pstmt.setString(2,"%"+keyWord+"%");
pstmt.setString(3,"%"+keyWord+"%");
pstmt.setString(4,"%"+keyWord+"%");
pstmt.setString(5,"%"+keyWord+"%");
pstmt.setString(6,"%"+keyWord+"%");
pstmt.setInt(7,(currentPage -1)* lineSize) ;
pstmt.setInt(8,lineSize) ;
rs = pstmt.executeQuery() ;
%>
<%
    while(rs.next()){
        int empno = rs.getInt(1) ;
        String ename = rs.getString(2) ;
        String job = rs.getString(3) ;
        Date hiredate = rs.getDate(4) ;
        double sal = rs.getDouble(5) ;
        double comm = rs.getDouble(6) ;
%>
    <TR onMouseOver="changeColor(this,'white')" onMouseOut="changeColor(this,'F2F2F2')">
        <td align="center" valign="middle"><span class="STYLE6"><%=empno%></span></td>
        <td align="center" valign="middle"><span class="STYLE6"><%=ename%></span></td>
        <td align="center" valign="middle"><span class="STYLE6"><%=job%></span></td>
        <td align="center" valign="middle"><span class="STYLE6"><%=hiredate%></span></td>
        <td align="center" valign="middle"><span class="STYLE6"><%=sal%></span></td>
        <td align="center" valign="middle"><span class="STYLE6"><%=comm%></span></td>
    </TR>
<%
    }
%>
</table>
<%
    conn.close() ;
%>
</center>
</body>
</html>

split_page_plugin.jsp

 <%@ page contentType="text/html" pageEncoding="GBK"%>
<%
    int currentPage = 1 ;   // 为当前所在的页,默认在第1页
    int lineSize = 3 ;      // 每次显示的记录数
    long allRecorders = 0 ; // 表示全部的记录数
    long pageSize = 1 ;     // 表示全部的页数(尾页)
    int lsData[] = {1,3,5,7,9,10,15,20,25,30,50,100} ;
    String keyWord = request.getParameter("kw"); //接收查询关键字
    String url = request.getParameter("url");
%>
<%
    try{
        currentPage = Integer.parseInt(request.getParameter("cp")) ;
    } catch(Exception e) {}
    try{
        lineSize = Integer.parseInt(request.getParameter("ls")) ;
    } catch(Exception e) {}
    try{
        allRecorders = Long.parseLong(request.getParameter("allRecorders")) ;
    } catch(Exception e) {}
    if(keyWord == null){
       keyWord = "";
    }
%>

<%
    pageSize = (allRecorders + lineSize -1) / lineSize ;
    if(pageSize == 0){
       pageSize = 1;
    }
%>
<script language="javascript">
    function go(num){
        document.getElementById("cp").value = num ;
        document.spform.submit() ;  // 表单提交
    }
</script>
<form name="spform" action="<%=url%>" method="post">
    输入查询关键字:<input type="text" name="kw" value="<%=keyWord%>"><input type="submit" value="查询"><br>
    <input type="button" value="首页" onclick="go(1)" <%=currentPage==1?"DISABLED":""%>>
    <input type="button" value="上一页" onclick="go(<%=currentPage-1%>)" <%=currentPage==1?"DISABLED":""%>>
    <input type="button" value="下一页" onclick="go(<%=currentPage+1%>)" <%=currentPage==pageSize?"DISABLED":""%>>
    <input type="button" value="尾页" onclick="go(<%=pageSize%>)" <%=currentPage==pageSize?"DISABLED":""%>>
    跳转到第<select name="selcp" onchange="go(this.value)">
        <%
            for(int x=1;x<=pageSize;x++){
        %>
                <option value="<%=x%>" <%=x==currentPage?"SELECTED":""%>><%=x%></option>
        <%
            }
        %>
    </select>页
    每页显示
        <select name="ls" onchange="go(1)">
        <%
            for(int x=0;x<lsData.length;x++){
        %>
            <option value="<%=lsData[x]%>" <%=lsData[x]==lineSize?"SELECTED":""%>><%=lsData[x]%></option>
        <%
            }
        %>
        </select>
    条
    <input type="hidden" name="cp" value="1">
</form>

解决方案

目测是页码没有传到服务器端。下个断点跟踪下。

解决方案二:

 try{
        currentPage = Integer.parseInt(request.getParameter("cp")) ;//关键看看这里有没有取到值,取出来的值是多少,按钮可用不可用都是这个参数决定的
    } catch(Exception e) {}
时间: 2024-10-30 09:45:17

javaweb-java代码中没法执行首页、上一页、下一页操作的相关文章

怎样在java代码中调用执行shell脚本呀

问题描述 遇到个问题   在本地压缩服务器上的xml文件 我就想编写shell教本 脚本内容是链接服务器 找到待压缩文件 压缩文件  说实话 我不知道这样是否可行  试试  但我不知道怎样在java代码中 调用执行shell脚本  谁能指点指点  求教...  问题补充:首先谢谢各位朋友的回答  在补充个小问题 <br />能在调用shell脚本时 同时给shell脚本传参数吗  不止一个 能这样写吗     <br />Runtime.getRuntime().exec(&quo

怎样在java 代码中通过ftp协议实现远程压缩文件 哪位指点一二,小弟不胜感激呀

问题描述 具体情况是这样的: 服务器端有好多xml文件有几个G,在客户端要下载下来,由于文件太大,若加上网络不好,就会下载失败. 考虑到xml文件压缩后会少的很多,就想在下载前将其压缩, 问题就在 怎样在客户端通过ftp协议将服务器端的xml文件压缩呢? 现在用的是commons-net 链接的 各位朋友都说说有啥好的解决方案莫 问题补充:能否通过写sheel脚本来执行服务器上的xml文件压缩呢? 若能实现,怎样在java代码中 执行sheel脚本 让其压缩服务器上的文件呢 解决方案 这个从理论

在下面这段java代码中,怎么获取文件大小 ,如果再加上图片尺寸更好。

问题描述 在下面这段java代码中,怎么获取文件大小 ,如果再加上图片尺寸更好. public static List> uploadFile(HttpServletRequest request, String[] params, Map values) throws Exception { List<Map<String, Object>> result = new ArrayList<Map<String, Object>>(); Multipa

在java代码中如何取到sqlserver中的“select datediff(day,&amp;amp;#x27;2014-01-01&amp;amp;#x27;,&amp;amp;#x27;2014-09-01&amp;amp;#x27;)”的值

问题描述 在java代码中如何取到已连接的sqlserver中的"selectdatediff(day,'2014-01-01','2014-09-01')"的值,因为在这个查询语句中没有产生普通的结果集所以没法取?求大神帮忙解决?先谢谢了 解决方案

怎么在java代码中获取Sessionlistener和Session失效时间?

问题描述 怎么在java代码中获取Sessionlistener和Session失效时间? 我现在在做Session集中管理的功能,把Session数据存放到Redis中,为了要兼容常见的应用服务器,所以参照SpringSession,实现了自己的一套Session管理机制.写了一个套Session管理,替换了应用服务器的Session管理.现在需要做Session失效和SessionListener功能. 现在遇到两个问题: 1.怎么在java代码中,获取到用户设置的Session失效时间?

如何通过java代码直接打开自己主机上的一个Excel表格

问题描述 如何通过java代码直接打开自己主机上的一个Excel表格,不是表格中的一些数据而是整个Excel表格都要打开! 解决方案 不知道是不是这个意思,看下面的代码import java.io.*;public class ExecuteCommandBean {private String command;private Process process;private String responseText;private InputStream is;private InputStrea

JVM学习笔记(二)------Java代码编译和执行的整个过程

Java代码编译是由Java源码编译器来完成,流程图如下所示: Java字节码的执行是由JVM执行引擎来完成,流程图如下所示: Java代码编译和执行的整个过程包含了以下三个重要的机制: ● Java源码编译机制 ● 类加载机制 ● 类执行机制 Java源码编译机制 Java 源码编译由以下三个过程组成: ● 分析和输入到符号表 ● 注解处理 ● 语义分析和生成class文件 流程图如下所示: 最后生成的class文件由以下部分组成: ● 结构信息.包括class文件格式版本号及各部分的数量与大

JRockit读书笔记I — Java代码的高效执行

<Oracle JRockit: The Definitive Guide>一书是由Oracle JRockit的两位资深开发人员写的,其中的Marcus Hirt更是JRockit Mission Control的leader,这本书详细的对Oracle JRockit进行了介绍,最突出的特点非常系统化的介绍了一个JVM通常是如何实现的,而JRockit这样一个极为优秀的JVM又是做了哪些优化,为什么做这些优化,这本书对于对JVM感兴趣的同学而言应该是必读的一本书,其实即使对于JVM兴趣不强

流水号-生成流水单号是在java代码中生成好还是直接从数据库中生成?

问题描述 生成流水单号是在java代码中生成好还是直接从数据库中生成? 之前项目中用的oracle数据库,用sequence生成流水号.现在用mysql,没有 sequence,那么,如果生成流水号的话,是自己建表写函数直接生成流水号好.还是在后台写个java方法用synchronize锁上生成流水号好? 解决方案 只要不会产生重复的流水号,哪里产生的无所谓. 解决方案二: 流水号有特殊格式要求的,在java代码中生成更灵活.若无要求,在数据库中生成更好,更能保证数据的一致性. 解决方案三: 我