初学者,在JSP文件实现表格分页,按下“上一页”“下一页”等按钮之后无法调用go()方法,无法换页,求助!!!

mzzx053003 2014-12-16 09:21:04
<%@ page contentType="text/html" pageEncoding="GBK"%>
<%@ page import="java.sql.*"%>
<html>
<head>
<title>小舒同学</title>
<script language="javascript">
function go(num){
System.out.println("****************go了****************");
document.getElementById("cp").value = num ;
document.spform.submit() ; // 表单提交
}
</script>
</head>
<body>
<%
request.setCharacterEncoding("GBK"); //解决中文乱码
%>
<%!
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 DBPASS = "mysqladmin"; //数据库连接密码
%>
<%
Connection conn = null; //声明数据库连接对象
PreparedStatement pstmt = null; //声明数据库操作
ResultSet rs = null; //声明数据库结果集
%>
<%
int currentPage = 1 ; // 为当前所在的页,默认在第1页
int allRecorders = 0 ; // 表示全部的记录数
int pageSize = 1 ; // 表示全部的页数(尾页)
%>
<%
try{
String aaa = request.getParameter("cp");
if(aaa==null||"".equals(aaa)) {
System.out.println("**********空的*********");
currentPage = 1;
} else {
currentPage = Integer.parseInt(aaa) ;
}
} catch(Exception e) {
System.out.println("****************错了****************");
}
%>

<% //sql操作会抛出异常,这里用try。。。catch处理
try {
String sql = "SELECT COUNT(empno) FROM emp"; //查询语句
Class.forName(DBDRIVER); //数据库驱动加载
conn = DriverManager.getConnection(DBURL,DBUSER,DBPASS); //取得数据库连接
pstmt = conn.prepareStatement(sql); //实例化数据库操作对象
rs = pstmt.executeQuery(); //执行查询
if(rs.next()){ // 取得全部的记录数
allRecorders = rs.getInt(1) ;
}
%>
<center>
<h1>雇员列表<h1>
<hr>
<%
pageSize = allRecorders/8+1 ;
%>
<%
sql = "SELECT empno,ename,job,sal,hiredate FROM EMP LIMIT ?,8" ;
pstmt = conn.prepareStatement(sql) ;
pstmt.setInt(1,(currentPage-1) * 8) ;
rs = pstmt.executeQuery() ;
%>
<form name="spform" action="#" method="post">
<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":""%>>
<input type="hidden" name="cp" value="1">
</form>

<table border="1" width="60%">
<tr>
<td>雇员编号</td>
<td>雇员姓名</td>
<td>雇员工作</td>
<td>雇员工资</td>
<td>雇员日期</td>
</tr>
<%
while(rs.next()) {
int empno = rs.getInt(1); //取得编号
String ename = rs.getString(2); //取得姓名
String job = rs.getString(3); //取得工作
float sal = rs.getFloat(4); //取得工资
java.util.Date data = rs.getDate(5); //取得雇佣日期
%>
<tr>
<td><%=empno%></td>
<td><%=ename%></td>
<td><%=job%></td>
<td><%=sal%></td>
<td><%=data%></td>
</tr>
<%
}
%>
</table>
<%
} catch(Exception e) {
e.printStackTrace();
}
finally{
rs.close();
pstmt.close();
conn.close();
}
%>
</body>
</html>
...全文
551 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
荆可可 2015-02-19
  • 打赏
  • 举报
回复
function go(num){ spform.elements['cp'].value =num; spform.submit() ; // 表单提交 } 我把javascript改成这样就没问题了。。。。弄了我一下午。。。
functionsub 2014-12-17
  • 打赏
  • 举报
回复
 function go(num){
    document.getElementById("cp").value = num ;
    //document.spform.submit() ;	// 表单提交,这里改一下吧。
     document.getElementById('spform').submit() ;
}
在form上面加一个id="spform" 其实方法是进来了,只是只有IE下可以根据name直接document.spform
mzzx053003 2014-12-17
  • 打赏
  • 举报
回复
那个用JAVA 语句是我的失误,当时是为了调试代码加进去的。然后换了JS语句。我是用的Google浏览器,登录这个JSP就是运行不到go()方法里面。看了2楼之后用IE去登录,其功能就可以实现。为什么IE可以用,Google不可以用呢?
波儸密 2014-12-17
  • 打赏
  • 举报
回复
<input type="hidden" name="cp" value="1"> 改为 <input type="hidden" id="cp" value="1"> 试试
functionsub 2014-12-17
  • 打赏
  • 举报
回复
哦,IE浏览器的话记得开一下开发者工具(按一下F12)。
functionsub 2014-12-17
  • 打赏
  • 举报
回复
 function go(num){
        System.out.println("****************go了****************");
    document.getElementById("cp").value = num ;
    document.spform.submit() ;	// 表单提交
    }
大哥啊,,这是JS啊,不是JAVA啊,你System.out.prinyln是闹哪样啊。。 改成
console.log('***************go了*******************')
波儸密 2014-12-17
  • 打赏
  • 举报
回复
document.getElementById 有时会抓 name 放过了 id ,据说是 IE 的一个 BUG
mzzx053003 2014-12-17
  • 打赏
  • 举报
回复
<script language="javascript"> function go(num){ alert("*******进入了GO方法*******"); document.getElementById("cp").value = num; //document.spform.submit() ; // 表单提交1 document.getElementById('spform').submit() ;// 表单提交2 } </script> JS代码改成这样,在IE不管语句1,2都可以提交。然后在Google浏览器中,会执行alert("*******进入了GO方法*******");,当进入document.getElementById("cp").value = num;语句时,会出错,在JS控制台提示“Uncaught TypeError: Cannot set property 'value' of null”。
搬砖男子汉 2014-12-17
  • 打赏
  • 举报
回复
System.out.println("****************go了****************"); 这行语句应该不能在js函数里写的,这是Java的代码
内容概要:本文提出了一种基于改进扩散模型的高海拔地区新能源高波动出力场景生成方法,并提供了完整的Python代码实现。该方法针对高海拔地区风能、光伏等新能源出力波动剧烈、不确定性高的特点,通过优化扩散模型的结构与训练策略,有效捕捉历史数据的概率分布特征与时序相关性,从而生成高质量、多样化的出力场景。文中详细阐述了模型的数学推导、网络架构设计、损失函数优化及采样算法改进,并通过实验证明其在拟合精度、场景多样性与稳定性方面优于传统生成模型,为电力系统在高比例新能源接入下的规划、调度与风险评估提供了可靠的场景输入支持。; 适合人群:具备一定Python编程能力和机器学习基础,从事新能源发电预测、电力系统分析、智能优化、场景生成等方向研究的科研人员、高校研究生及工程技术人员。; 使用场景及目标:①用于高海拔地区风电、光伏出力的不确定性建模与多场景生成;②支撑含高渗透率新能源的电力系统随机优化调度、鲁棒决策与风险评估;③为相关学术研究、论文复现与算法改进提供可运行的技术方案与代码基础; 阅读建议:建议读者结合所提供的完整资源(代码、数据集、说明文档)进行实践操作,重点关注扩散模型的前向加噪与反向去噪过程的设计细节,以及如何将其适配于新能源时序数据的生成任务,通过参数调优与对比实验深入理解模型的生成机制与性能边界。

87,988

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧