java web开发过程中出现的一些诡异问题(2)

简介:

接着上一篇博客:http://hw1287789687.iteye.com/blog/2053907

(1)我们上周做一个web项目,修改bug后发增量包(补丁包),其实我喜欢发全量包,但是领导要求增量包(补丁包),没办法.

有次发增量包(补丁包),修改了一个常量类,发布后,仍然测出问题.纳闷:明明修改了常量类啊.反编译常量类,确实是修改过之后的,没问题.那么问题出在哪儿呢?

给大伙儿重现一下:

我这里有两个类

Java代码   收藏代码
  1. public class Constant {  
  2.     public static final String WHO="黄威";  
  3.     public static final int AGE=26;  
  4. }  
  5.   
  6. public class Hello{  
  7.   
  8.     public static void main(String[]args)  
  9.     {  
  10.         System.out.println("Hello,"+Constant.WHO);  
  11.     }  
  12. }  

 在命令行中进行编译:

 运行:

 

然后我发一个增量包:只修改Constant类,修改Constant类的WHO变量:

Java代码   收藏代码
  1. public class Constant {  
  2.     public static final String WHO="黄威22222222222222";  
  3.     public static final int AGE=26;  
  4. }  

 单独编译Constant:,然后运行Hello:

 奇怪!!!为什么结果没有变呢?

预期的结果应该是:

Hello,黄威22222222222222

原因是:对于含有常量的类,javac编译时直接把常量的值替换进去了.

所以我们还得重新编译Hello:

 测试代码见附件

 

(2)对于js动态增加的表格tr,IE浏览器不识别

我使用如下代码动态增加表格的行(tr):

Js代码   收藏代码
  1. var queryResultTable_obj=getTable();  
  2.             dataLength=tableContent.length;  
  3.             for(var i=0;i<dataLength;i++){  
  4.                 var oneTr=tableContent[i];  
  5.                 //alert(oneTr.realName);  
  6.                 var newTr = document.createElement("tr");  
  7.                  var newTd0 = document.createElement("td");  
  8.                  var newTd1 = document.createElement("td");  
  9.                  var newTd2 = document.createElement("td");  
  10.                  var newTd3 = document.createElement("td");  
  11.                  var newTd4 = document.createElement("td");  
  12.   
  13.                  newTd0.innerHTML =oneTr.realName;  
  14.                  newTd1.innerHTML =oneTr.email;  
  15.                  newTd2.innerHTML =oneTr.aaa;  
  16.                  newTd3.innerHTML =oneTr.bbb;  
  17.                  newTd4.innerHTML ="<a target='_blank' href=\""+"../mgmt/personDetail.action?realName="+oneTr.realName+"&email="+oneTr.email+"&query_time="+query_time+"\" >签到详情</a>"  
  18.                    
  19.                  newTr.appendChild(newTd0);  
  20.                  newTr.appendChild(newTd1);  
  21.                  newTr.appendChild(newTd2);  
  22.                  newTr.appendChild(newTd3);  
  23.                  newTr.appendChild(newTd4);  
  24.                    
  25.                  queryResultTable_obj.appendChild(newTr);  
  26.                    
  27.             }  

 在IE中使用queryResultTable_obj.rows.length 获取表格行的个数时竟然是0,但是在火狐和谷歌浏览器中都没有问题.

说明:queryResultTable_obj 是表格对象

 那么在IE中如何获取表格的行(tr)呢?

通过 var trs=queryResultTable_obj.getElementsByTagName("tr");//获取表格所有的行tr

如何动态删除表格的所有行(除了表头)呢?

Js代码   收藏代码
  1. //判断是否是IE浏览器  
  2. var userAgent = navigator.userAgent.toLowerCase();  
  3.     var browser=navigator.appName;  
  4.     var b_version=navigator.appVersion;  
  5.     //var version=b_version.split(";");  
  6.     //var trim_Version=version[1].replace(/[ ]/g,"");//firefox error  
  7.   
  8.     var isIE9test=userAgent.indexOf("windows nt ")>0&&userAgent.indexOf("trident")>0&&browser=="Microsoft Internet Explorer";  
  9.   
  10.      //删除行  
  11.      function deleteRow(){  
  12.             var queryResultTable_obj=getTable();  
  13.              
  14.            if(isIE9test){//如果是IE浏览器  
  15.                var trs=queryResultTable_obj.getElementsByTagName("tr");//获取表格所有的行tr  
  16.                   for(var i=1;i<trs.length;){  
  17.                       var trOne=trs[i];//表格的每一行  
  18.                       queryResultTable_obj.removeChild(trOne);//从表格中删除tr  
  19.                   }  
  20.            }else{  
  21.                var length= queryResultTable_obj.rows.length ; //表格最后一行索引  
  22.                 
  23.               while(length > 1){  
  24.                   length--;  
  25.                   if(length<1){  
  26.                       break;  
  27.                   }  
  28.                   queryResultTable_obj.deleteRow(length);  
  29.                }  
  30.                
  31.            }  
  32.      }  
相关文章
|
7天前
|
SQL Java
20:基于EL与JSTL的产品管理页-Java Web
20:基于EL与JSTL的产品管理页-Java Web
20 5
|
21小时前
|
前端开发 JavaScript Java
Java与Web开发的结合:JSP与Servlet
Java与Web开发的结合:JSP与Servlet
7 0
|
7天前
|
设计模式 前端开发 Java
19:Web开发模式与MVC设计模式-Java Web
19:Web开发模式与MVC设计模式-Java Web
19 4
|
7天前
|
设计模式 存储 前端开发
18:JavaBean简介及其在表单处理与DAO设计模式中的应用-Java Web
18:JavaBean简介及其在表单处理与DAO设计模式中的应用-Java Web
24 4
|
7天前
|
SQL Java 数据库连接
17:数据库连接池与Servlet整合-Java Web
17:数据库连接池与Servlet整合-Java Web
19 3
|
7天前
|
存储 前端开发 搜索推荐
13:Session机制实现用户登录与注销功能-Java Web
13:Session机制实现用户登录与注销功能-Java Web
22 3
|
7天前
|
XML 前端开发 Oracle
16:JSP简介、注释与Scriptlet、Page指令元素、Include操作、内置对象、四种属性-Java Web
16:JSP简介、注释与Scriptlet、Page指令元素、Include操作、内置对象、四种属性-Java Web
11 2
|
1月前
|
XML JSON JavaScript
使用JSON和XML:数据交换格式在Java Web开发中的应用
【4月更文挑战第3天】本文比较了JSON和XML在Java Web开发中的应用。JSON是一种轻量级、易读的数据交换格式,适合快速解析和节省空间,常用于API和Web服务。XML则提供更强的灵活性和数据描述能力,适合复杂数据结构。Java有Jackson和Gson等库处理JSON,JAXB和DOM/SAX处理XML。选择格式需根据应用场景和需求。
|
3月前
|
Java Maven 开发者
深入剖析Spring Boot在Java Web开发中的优势与应用
深入剖析Spring Boot在Java Web开发中的优势与应用
|
3月前
|
Java 应用服务中间件 API
深入解析Java Servlet技术在Web开发中的应用
深入解析Java Servlet技术在Web开发中的应用
216 1