码迷,mamicode.com
首页 > 编程语言 > 详细

数组赋值理解错误,造成数据错误

时间:2016-07-03 15:42:37      阅读:159      评论:0      收藏:0      [点我收藏+]

标签:

情景:需求导出数据。

具体功能:根据查询结果导出数据,如果没有勾选需要导出的数据,则导出 全部数据如果勾选了,则导出查询结果中选择的数据。

实现方法:在查询时把生成查询条件放到session中,查询条件是个集合,在导出时获取session中的查询条件和选择的数据的id,生成新的查询条件。

问题:第一次导出时数据正确,第二次导出时获得的session中的查询条件为第一次时生成的查询条件,导致导出的结果为此次条件与上一次条件的并的结果

错误原因:数组的复制与赋值概念不清。以下为代码

正确代码:

List searchParams = (List)request.getSession().getAttribute("searchQuitAssetParamsList");
        
List paramsList = new ArrayList();
for(Object param : searchParams) {
  paramsList.add(param);
}
String ids
= request.getParameter("ids"); if (ids != null && !"".equals(ids)) {   ids = ids.substring(0, ids.length() - 1); paramsList.set(6, paramsList.get(6) + " and asset_id in (" + ids + ")"); } List list = assetQuitService.getAssetQuit(null, paramsList, null);

错误代码:

List paramsList = (List)request.getSession().getAttribute("searchQuitAssetParamsList");
for(Object param : searchParams) { 
  paramsList.add(param);
}
String ids
= request.getParameter("ids");
if (ids != null && !"".equals(ids)) {
  ids
= ids.substring(0, ids.length() - 1);
  paramsList.set(
6, paramsList.get(6) + " and asset_id in (" + ids + ")");
}
List list
= assetQuitService.getAssetQuit(null, paramsList, null);

数组赋值理解错误,造成数据错误

标签:

原文地址:http://www.cnblogs.com/wujianxingzhe/p/5638016.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!