public ActionForward createEdit( ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { try { LoteForm loteForm = new LoteForm(); String idStrLote = request.getParameter("idLote"); if (StringUtils.isNotBlank(idStrLote)) { loteForm = this.loteService.getLoteById(Integer.valueOf(idStrLote)); } loteForm.setFornecedores(this.fornecedorService.getAllFornecedorForm()); loteForm.setPerfumes(perfumeService.getAllPerfumeForm()); request.setAttribute("model", loteForm); return mapping.findForward("cadastro"); } catch (Exception e) { e.printStackTrace(); return mapping.findForward("falha"); } }
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()); }