private void recuperaParams(HttpServletRequest request, ActionForm form) { LoteForm loteForm = (LoteForm) form; Map<Integer, LoteProdutoForm> perfumes = new HashMap<Integer, LoteProdutoForm>(); for (String p : loteForm.getPerfume()) { Integer idPerfume = Integer.valueOf(p); LoteProdutoForm loteProduto = new LoteProdutoForm(); loteProduto.setIdPerfume(idPerfume); perfumes.put(idPerfume, loteProduto); } for (Object key : request.getParameterMap().keySet()) { String keyStr = (String) key; if (keyStr.contains("quantidade")) { String qtd[] = keyStr.split(";"); Integer idPerfume = Integer.valueOf(qtd[1]); LoteProdutoForm perf = perfumes.get(idPerfume); perf.setQuantidade(Integer.valueOf(request.getParameter(keyStr))); } if (keyStr.contains("preco")) { String prec[] = keyStr.split(";"); Integer idPerfume = Integer.valueOf(prec[1]); LoteProdutoForm perf = perfumes.get(idPerfume); String value = request.getParameter(keyStr).replace(",", "."); perf.setPreco(Double.valueOf(value)); } } loteForm.setLoteProdutoForm(perfumes.values()); }