关于ModelMap的小事

今天对一个老系统框架的升级,需要修改原先响应的http报文格式。该系统是springMVC实现。
出了点小问题,记录一下。

@Override
public void postHandle(WebRequest request, ModelMap model) throws Exception {



if(model.get("content")==null){
Map<String,Object> content=new HashMap<String,Object>();
for(String key:model.keySet()){
if(!"status".equals(key)&&!"describe".equals(key)){
content.put(key, model.get(key));
model.remove(key);
}


}
model.put("content", content);
}





}






}

该方法打算实现将出了modelMap里面原来存储的对象取出来放到一个Map里面,然后存储该Map,但是运行报错ConcurrentModificationException,并发修改异常
原因是 在跌代一个集合的适合无法进行修改,解决方案可以先采用临时集合存储要修改的对象,然后再次修改。

if(model.get("content")==null){
JSONObject content=new JSONObject();
List<String> list=new ArrayList<String>();
for(String s:model.keySet()){
if(!"status".equals(s)&&!"describe".equals(s)){
list.add(s);
content.put(s,model.get(s));
}
}
for(String s:list){
model.remove(s);
}



model.put("content", content);
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值