public ModelAndView listarPre(HttpServletRequest request, HttpServletResponse response) {

    String nomeModuloSelecionado = getParam("nomeModuloSelecionado");

    // verifica se o objeto deve ser atualizado com os dados do form
    if (request.getAttribute(super.UPDATE_FROM_FORM) != null) {
      Usuario usuario = getSessionContainer().getUsuarioLogado();
      Map<String, String> configuracoes =
          administracaoService.findConfiguracoes(usuario, nomeModuloSelecionado);
      addObject("configuracoes", configuracoes);
    }

    addObject("nomeModuloSelecionado", nomeModuloSelecionado);

    return new ModelAndView("configuracoes");
  }
  public ModelAndView salvar(HttpServletRequest request, HttpServletResponse response) {
    Usuario usuario = getSessionContainer().getUsuarioLogado();

    String[] chaves = request.getParameterValues("chaves");
    String[] valores = request.getParameterValues("valores");

    try {
      administracaoService.salvarConfiguracoes(
          usuario, getParam("nomeModuloSelecionado"), chaves, valores);
    } catch (BumerangueRuntimeException e) {
      super.addError(e.getMessage());
      request.setAttribute(super.UPDATE_FROM_FORM, super.UPDATE_FROM_FORM);
      return listarPre(request, response);
    }

    super.addSuccess(BumerangueSuccessRuntimeException.ALTERACAO_REALIZADA);
    request.setAttribute(super.UPDATE_FROM_FORM, super.UPDATE_FROM_FORM);
    return this.listarPre(request, response);
  }