今天对一个老系统框架的升级,需要修改原先响应的http报文格式。该系统是springMVC实现。
出了点小问题,记录一下。
该方法打算实现将出了modelMap里面原来存储的对象取出来放到一个Map里面,然后存储该Map,但是运行报错ConcurrentModificationException,并发修改异常
原因是 在跌代一个集合的适合无法进行修改,解决方案可以先采用临时集合存储要修改的对象,然后再次修改。
出了点小问题,记录一下。
@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);
}