Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Duvida RequestParam

Boa noite, estou com uma duvida e não to conseguindo achar resposta em nenhum lugar!!

como eu faço pra receber um parametro get? Estou fazendo assim

Meu JSP:

<form:form action="${s:mvcUrl('RC#relatorio').build()}" method="get" commandName="data" enctype="multipart/form-data">
                      <td>Filtro por data: </td>
                      <td><input type="date"><button formmethod="get" type="submit">Checar</button></td>
                  </form:form>

RelatorioControler

@GetMapping(value="/relatorio")
    public ModelAndView relatorio(@RequestParam(value="data", required=false) @DateTimeFormat(pattern="yyyy-MM-dd") Calendar data) {
        ModelAndView modelAndView = new ModelAndView("relatorio");
        Calendar cal = Calendar.getInstance();
        modelAndView.addObject("dataGeracao" ,cal);
        List<Produto> produtos = dao.listar();
        modelAndView.addObject("produto", produtos);
        return modelAndView;
    }

ProdutoDAO

public List<Produto> listar() {
        return manager.createQuery("select distinct(p) from Produto p join fetch p.precos", Produto.class)
                .getResultList();
    }

Fiz esse tambem no produtoDAO porém não ta dando certo

public List<Produto> dataLancamento(Calendar dataLancamento) {
        String query = "select p from Produto p";
        TypedQuery<Produto> createQuery = manager.createQuery(query, Produto.class);
        if(dataLancamento != null) {
            query += " where p.dataLancamento > :dataLancamento";
            createQuery.setParameter("dataLancamento", dataLancamento);
        }
        return createQuery.getResultList();
    }
3 respostas
solução!

Tenta assim:

<input type="date" name="data">

Muito obrigado!! ajudou 50%!! os outros 50% é que ta dando erro de conversão!

org.springframework.web.method.annotation.MethodArgumentTypeMismatchException: Failed to convert value of type 'java.lang.String' to required type 'java.util.Calendar'; nested exception is org.springframework.core.convert.ConversionFailedException: Failed to convert from type [java.lang.String] to type [@org.springframework.web.bind.annotation.RequestParam @org.springframework.format.annotation.DateTimeFormat java.util.Calendar] for value '2018-09-10'; nested exception is java.lang.IllegalArgumentException: Parse attempt failed for value [2018-09-10]

Caused by: org.springframework.core.convert.ConversionFailedException: Failed to convert from type [java.lang.String] to type [@org.springframework.web.bind.annotation.RequestParam @org.springframework.format.annotation.DateTimeFormat java.util.Calendar] for value '2018-09-10'; nested exception is java.lang.IllegalArgumentException: Parse attempt failed for value [2018-09-10]

Caused by: java.lang.IllegalArgumentException: Parse attempt failed for value [2018-09-10]

Caused by: java.text.ParseException: Unparseable date: "2018-09-10"

Eu já tenho no AppWebConf o mvcConversionService.

Consegui! tive que mudar o mvcConversionService para o tipo yyyy-MM-dd porque é o formato recebido do input type=DATE

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software