`

嵌套循环中的bug

 
阅读更多
在项目中遇到以下问题
该功能在实际投产中使用较少,列表记录也不是很多,随着时间的流逝数据逐渐增多,问题出现
列表中有些数据不显示


图中黑框部门,检查了很长时间。
发现该数据是使用两层嵌套显示,其中循环次数又是取用户设置中的分页条数。
如果数据太多,分页条数设置为10,很多记录就查不到,内循环只有10次
导致了该问题发生,修改也很简单,查询不要设分页

对测试建议:功能测试很难发现该问题。开发人员单元测试不仔细也很难发现,取决于个人功力。比较有效的测试大数据量测试,这对测试人员要求比较高,要不进行自动化脚本编写,要不借用第三方工具数据库功能

大数据量测试对发现系统功能隐含问题和性能问题很有效,测试人员要重视!

由此可见做好任何一个工作都要下大力气!

<logic:iterate name="ListData" id="ld" indexId="index">
<logic:notEqual name="ld" property="station_name" value="">
<%
HashMap dataMap = (HashMap) listData.get(index.intValue());
String stationid = (String)dataMap.get("station_id");
String stationname = (String)dataMap.get("station_name");

//System.out.println(stationname);
String storename = "";
String storenames = "";
String stationname2;
%>
<tr>
<td width="15%"><bean:write name="ld" property="station_name"/>&nbsp;
<%if(listData2!=null || listData2.size()!=0)
{
HashMap dataMap2 = null;
//out.println(listData2.size());
for(int i=0;i<listData2.size();i++)
{
dataMap2=(HashMap)listData2.get(i);
storename  = (String) dataMap2.get("store_name");
//out.println(storename);
stationname2 = (String)dataMap2.get("station_name");
//out.println(i+stationname2);
if(stationname2.equals(stationname)){
storenames += storename+" ";
//out.println(i+storenames);
}
}
}%></td>
<td width="70%"><%=storenames%></td>
<td width="15%">
<a href="storeAssign.do?method=view&stationId=<%=stationid%>"/>查看</a>
<a href="storeAssign.do?method=tomodStation&stationId=<%=stationid%>"/>修改</a>
<a href="#" onclick="javaScript:del('<%=stationid%>');"/>删除</a>
</td>
</tr>
</logic:notEqual>
</logic:iterate>
  • 大小: 23.5 KB
分享到:
评论

相关推荐

    无bug带属性填充包括对象嵌套属性填充与多文件上传及所有标签

    标题和描述中的"无bug带属性填充包括对象嵌套属性填充与多文件上传及所有标签"涉及到多个关键知识点,我们将逐一进行详解。 首先,"属性填充"是程序设计中的一种常见操作,尤其是在对象模型构建时。它指的是为一个...

    基于IE下ul li 互相嵌套时的bug,排查,解决过程以及心得介绍

    检查bug的步骤 1. bug定位 在js脚本中,按照脚本执行的...这时候我想到了内存泄露,看看是不是在循环拼接字符串的过程中,有循环引用或者其他原因造成内存泄露,然后在一些方法结束的时候,我把一些变量赋值null,来防

    解决双iframe互相刷新进入死循环的问题

    当两个iframe A和B相互引用并试图重载对方时,比如A中的脚本加载了B,而B中的脚本又加载了A,就会形成一个循环引用。每次重载都会触发页面重新渲染,这个过程持续不断,就形成了所谓的"endless loop"。 解决这个...

    JAD解决MISSING_BLOCK_LABEL心得

    当有标签块,嵌套循环中有break/continue,有goto语句的时候,会提示信息“Couldn't fully decompile method ”;当有try-catch-finally语句的时候会提示信息“Couldn't resolve all exception handlers in method ”...

    项目中遇到的异常

    当Foreach循环中EL表达式的写法不正确,如`items="${list}"`应该正确书写时,会导致EL表达式错误。解决办法是确保表达式语法正确无误。 #### 资源找不到 此问题通常发生在方法名拼写错误、子控制器配置缺少`...

    面试Java程序员最可能遇到的问题考试大全

    50. **跳出多重嵌套循环**:使用break语句配合标签。 51. **List, Map, Set的特点**:List按顺序存储,允许重复元素;Set不允许重复元素;Map存储键值对。 52. **匿名内部类**:可以继承类或实现接口,但没有名字,...

    Problems Solving with C++

    此外,书中还涉及了控制结构,比如switch语句和嵌套循环。switch语句允许根据表达式的值执行不同的代码块,而嵌套循环则允许在一个循环内部再使用另一层循环,这在处理多维数据结构时尤为有用。 函数是C++中的另一...

    密码学课程设计:希尔加密解密算法的实现

    在C++中,你可以利用二维数组表示矩阵,并使用嵌套循环进行矩阵乘法。为了确保加密过程的可逆性,加密矩阵必须是可逆的,即存在它的逆矩阵。 解密过程与加密类似,只是使用加密矩阵的逆进行矩阵乘法。因此,程序还...

    Python基础知识大全速查.docx

    在 Python 中,嵌套是指将一个语句或代码块嵌套在另一个语句或代码块中。例如,`if` 语句可以嵌套在 `for` 语句中,或者 `while` 语句中。 循环 在 Python 中,循环是指重复执行代码块的语句。常见的循环语句包括 ...

    扑克24点游戏JAVA源代码.docx

    - `calcBy4Pokers()`方法:使用七层嵌套循环来遍历所有可能的运算符和牌的顺序,创建`Expression24`对象来表示计算表达式,并将其存储在一个数组中。数组的大小是根据所有可能的运算符组合计算得出的。 3. **测试...

    麻省理工18年春软件构造课程阅读04“代码评审” 1

    更有效的做法可能是使用查找表或嵌套循环来简化此类计算。 代码评审不仅关注代码风格,还包括检查代码是否符合规格说明,是否正确实现了抽象数据类型,以及是否考虑到并发编程和线程安全问题。随着课程的深入,将...

    PDCA循环管理PDCA循环与质量指标分析.pptx

    在IT项目中,这可能包括修复bug、优化算法、调整架构或改进团队协作流程。 PDCA循环的特点: - **大环套小环**:PDCA可以应用在各个层次,从整体项目到具体任务,每个环节都可以嵌套PDCA,形成一个连续的改进网络。...

    PHP5.3新特性

    PHP5.3新增了对goto语句的支持,尽管它的使用通常不被推荐,但在某些情况下,比如跳出多层嵌套循环时,goto语句可以提供更简单的解决方案。 8. 静态延迟绑定 静态延迟绑定是PHP5.3的另一个特性,它允许在子类中定义...

    ExtAspNet v2.2.1 (2009-4-1) 值得一看

    -修正了在Grid的PageIndexChange事件中不能获取SelectedRowIndexArray属性的BUG(feedback:Violet)。 -Button控件将不再自动拥有display:inline属性,如果希望两个按钮在一行显示,请为第一个按钮设置CssStyle=...

    扑克24点游戏JAVA源代码.pdf

    - 代码中大量使用了嵌套循环来遍历所有可能的扑克牌组合,这是一种典型的回溯法或暴力求解策略。递归没有直接显示,但在 `calcBy4Pokers` 方法中,可能会使用递归来处理复杂的数学表达式。 6. **数组操作** - `...

    Vue开发规范.docx

    在Vue开发中,Javascript 规范主要包括命名、代码格式、字符串、对象声明、使用 ES6、括号、undefined 判断、条件判断和循环最多三层、this 的转换命名等方面。Javascript代码应该简洁、易读、易维护,避免使用无关...

    js鼠标滑过弹出层的定位IE6bug解决办法

    在提供的代码示例中,可以看到,每个弹出层`.layer`都嵌套在列表项`.box ul li`中,并且初始设置了一个非常高的`z-index`值(99999)。然而,这在IE6中可能无法生效,因为IE6的`z-index`处理方式与现代浏览器不同。 ...

    ExtAspNet_v2.3.2_dll

    -修正extjs最新版本(v3.2.2)中的一个bug,如果下拉列表中存在两个相同的Text,则SelectedValue返回值永远是第一个Text的值(feedback:ben.zhou)。 -应用补丁#6593, #6621(feedback:vbelyaev)。 +修正IE7下Grid分页...

    前端开源库-gulp-complexity

    1. **循环嵌套深度**:代码中嵌套循环的层数,嵌套越深,理解和调试就越困难。 2. **函数复杂度**:每个函数的控制流图(CFG)节点数量,通常使用Cyclomatic Complexity(圈复杂度)衡量,计算公式为M = P + 1,其中...

Global site tag (gtag.js) - Google Analytics