有关《JSP程序开发范例宝典》一书中疑问
发表在JavaWeb图书答疑 2009-02-12
是否精华
版块置顶:
 我在用JBuilder2006调试《JSP程序开发范例宝典》第10章第282例(利用EXCEL打印工资报
表)时,可以查询数据库数据到页面,但是按“打印”按钮,却没有任何反映。
 然后,我在函数outExcel()中,row=table.rows.length前,加入alert(“测试”),按“打印”按钮,页面上就提示“测试”。但在row=table.rows.length后,加入alert(“测试”),按“打印”按钮,也没任何反映
是不是row=table.rows.length有错,还是其他原因,百思不得其解,请版主赐教!在此先谢谢了!
分享到:
精彩评论 12
9527
学分:0 LV1
2009-02-12
沙发
上一行代码是:var table = document.all.pay;
获取ID为pay的表格,不知道你有没有为页面中的表格设置id属性?
一般脚本运行时发生错误的话在IE浏览器的左下角会有错误信息的提示。请你查看一下是什么错误。
aytnw
学分:0 LV1
2009-02-12
板凳
我用的是JBuilder2006调试的,信息框中没有任何提示。页面的table的id=pay是设置了的.
aytnw
学分:0 LV1
2009-02-12
地板
我的程序代码如下:
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*"%>
<jsp:useBean id="conn" scope="page" class="com.core.ConnDB"/>
<%
String month=request.getParameter("month");
String title="工资报表";
String sql="SELECT * FROM user ORDER BY xinming desc";

if(month!=null && !month.equals("")){
  sql="SELECT * FROM user where xinming='"+month+"' ORDER BY xinming desc";
  title=month+title;
}
System.out.println("SQL:"+sql);
ResultSet rs=conn.executeQuery(sql);
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>利用Excel打印工资报表</title>
<link href="CSS/style.css" rel="stylesheet"/>
<body>
<form name="form1" method="post" action="tang.jsp">
<table width="643"  border="0" align="center" cellpadding="0" cellspacing="0" class="tab_border">
  <tr>
    <td height="68" colspan="2" ><table width="100%"  border="0" cellpadding="0" cellspacing="0">
      <tr>
        <td width="45%">&nbsp;</td>
        <td width="55%">
          <select name="month">
            <option value="aykh1">aykh1</option>
            <option value="aykh2">aykh2</option>
          </select>
          <input name="Submit" type="submit" class="btn_grey" value="查询">
        </td>
      </tr>
    </table></td>
  </tr>
  <tr>
    <td width="4%">&nbsp;</td>
    <td width="96%" align="left"><table width="643" border="0" cellspacing="1" bgcolor="#000000" id="pay">
      <tr>
        <td width="37" height="27" align="center" bgcolor="#efefef">编号</td>
        <td width="152" align="center" bgcolor="#efefef">员工名称</td>
        <td width="106" align="center" bgcolor="#efefef">月份</td>
      </tr>
      <%
  int i=1;
  String xinming="";
  String mima="";

  try{
    while(rs.next()){
xinming=rs.getString(1);
        mima=rs.getString(2);

%>
      <tr>
        <td height="25" align="center" bgcolor="#FFFFFF"><%=i%></td>
        <td align="center" bgcolor="#FFFFFF">&nbsp;<%=xinming%></td>
        <td align="center" bgcolor="#FFFFFF">&nbsp;<%=mima%></td>


      </tr>
      <%
   i++;
    }
  }catch(Exception e){
    System.out.println(e.getMessage());
  }
  %>
    </table>
        <p align="center"><a href="#" onclick="outexcel();">打印</a></p>
<script language="javascript" type="">

function outexcel(){



var table=document.all.pay;

        row=table.rows.length;
column=table.rows(1).cells.length;
        alert("测试");


var excelapp=new ActiveXObject("Excel.Application");
excelapp.visible=true;
objBook=excelapp.Workbooks.Add(); //添加新的工作簿
var objSheet = objBook.ActiveSheet;

title=objSheet.Range("D1").MergeArea;  //合并单元格
title.Cells(1,1).Value ="<%=title%>";
title.Cells(1,1).Font.Size =16;
for(i=1;i<3+1;i++){
for(j=0;j<3;j++){
  objSheet.Cells(i+1,j+1).value=table.rows(i-1).cells(j).innerHTML.replace("&nbsp;","");
}
}
        objBook.SaveAs("c:\payList.xls");
excelapp.UserControl = true;
}
</script>
        <table width="100%" border="0" cellspacing="0" cellpadding="0">
          <tr>
            <td>&nbsp;</td>
          </tr>
      </table></td>
  </tr>
</table>
 </form>
</body>
</html>
aytnw
学分:0 LV1
2009-02-13
4L
我将运行情况截了一个图,但不知如何上传?“上传附件”后的“浏览”按钮是灰色的
无语_mrkj
学分:3155 LV11
2009-02-13
5L
请检查以下内容:
(1)请确定在页面运行时,要打印的表格是否包括2行或大于2行数据,如果只有一行表头,该程序不能运行。
(2)IE浏览器的安全设置中是否将“对没有标记为安全的ActiveX控件进行初始化和脚本运行”节点设置为启用。如果禁用,该程序也不能正常运行。
此项内容在IE浏览器的“工具”/“Internet选项”的高级选项卡中设置。
aytnw
学分:0 LV1
2009-02-15
6L
请问:一、如何在JBuilder2006中,进行其默认IE安全设置?(我用的是JBuilder2006进行调试的)
     二、上面的程序代码,(数据多于2行)在JBuiler2006中,调用useBean成功,能够访问数据库,并将数据显示在页面上,
但如果不用JBuiler2006,而直接在windows中IE浏览器运行则出现如下提示,请问何故呢?
org.apache.jasper.JasperException: /tang/tang.jsp(2,0) The value for the useBean class attribute com.core.ConnDB is invalid.
org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:40)
org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:407)
org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:148)
org.apache.jasper.compiler.Generator$GenerateVisitor.visit(Generator.java:1178)
org.apache.jasper.compiler.Node$UseBean.accept(Node.java:1117)
org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2166)
小小邪
学分:0 LV1
2009-02-16
7L
  请确认您是在JBuilder中运行成功,然后立刻在浏览器中输入地址访问的吗?还是在之后的某个时间吧程序复制到另一个机器或Tomcat运行的?
   请确认WEB-INF/classes文件夹例是否有编译好的.class二进制文件,特别是ConnDB.class文件,没有的话,请重新编译项目用到的类文件
aytnw
学分:0 LV1
2009-02-16
8L
确认:我是在JBuilder中运行成功,然后关闭JBuiler,立刻启动TOMCAT(是安装的,不是JBuiler自带的),然后在同一机器的浏览器中输入地址访问的。
确认:WEB-INF/classes文件夹有com/core目录,下面有有ConnDB.class文件。
还有上面提到的问题一:我在JBuiler2006中调用usebean成功,能将数据导出到页面显示,就是按“打印”按钮,没有任何反映。上次回复说是IE安全设置的“对没有标记为安全的ActiveX控件进行初始化和脚本运行”没启动,但我不知在JBuilder2006中,如何设置其自带的IE呢?
aytnw
学分:0 LV1
2009-02-16
9L
问题补充:一、上面这段程序我在JBuilder2006中运行时,能够成功调用usebean,
并能将数据库数据显示在页面上,但是按“打印”按钮时,程序没任何反映,不能
将数据导出到EXCLE。上次回复将IE的安全设置“对没有标记为安全的ActiveX控件
进行初始化和脚本运行”心为启用,我知道WINDOWS下IE安全设置,但不知如何设
置JBuilder2006中自带的IE呢?
二、同样的程序,同样的机器,同样的工程目录及文件,我在WINDOWS下的IE浏览器下地址中输入:http://localhost:8080/tang/tang/tang.jsp却提示org.apache.jasper.JasperException: /tang/tang.jsp(4,0) The value for the useBean class attribute com.core.ConnDB is invalid.
org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:40)
org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:407)
org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:148
       是什么原因呢?
我的工程tang目录是:C:\tnw\Tomcat 5.5\webapps\tang目录下有bak classes src tang tomcat目录
C:\tnw\Tomcat 5.5\webapps\tang\tang\目录下有WEB-INF文件夹和tang.jsp(调用usebean的JSP)
C:\tnw\Tomcat 5.5\webapps\tang\tang\WEB-INF文件夹中有classes lib文件夹
C:\tnw\Tomcat 5.5\webapps\tang\tang\WEB-INF文件夹中有com\core\ConnDB.class
C:\tnw\Tomcat 5.5\webapps\tang\src目录下有com/core/ConnDB.java文件(在JBuilder2006
中调试时,这个目录下没有这个文件,提示上面一样的错误,问题是:我关闭JBuilder2006
重启TOMCAT服务(WINDOWNS下安装的,不是JBuilder2006自带的)就出现上面的问题,是不
是也应该将com\core\ConnDB.java放到一个什么地方呢?
无语_mrkj
学分:3155 LV11
2009-02-17
10L
(1)在JBuilder中运行,然后将地址栏中的URL地址复制到IE地址栏中,再将IE浏览器的安全设置中的“对没有标记为安全的ActiveX控件进行初始化和脚本运行”节点设置为启用。
(2)将WEB-INF文件夹和tang.jsp(调用usebean的JSP)放到C:\tnw\Tomcat 5.5\webapps\tang目录下,不是C:\tnw\Tomcat 5.5\webapps\tang\tang\目录下,然后重启外置的Tomcat服务器.
注意:请保证WEB-INF文件夹中有com\core\ConnDB.class,以及WEB-INF文件夹中有classes和lib文件夹,并且lib文件夹中有SQL Server 2000的数据库驱动包
首页上一页 12 下一页尾页 12 条记录 1/2页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照