Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Não consigo receber um parâmetro do tipo calendar

Estou fazendo ainda a primeira funcionalidade que é fazer uma busca pro data e imprimir todos os produtos a partir da data que inserir em formato json. Logo a minha dúvida em como configurar o input para receber do tipo calendar para, segue abaixo os métodos e classe que criei:

No xml relatorio-produtos.jsp:

    <div class="container">
        <form:form action="${s:mvcUrl('RPC#dataJson').arg(0,produtos.dataLancamento).build()}" modelAttribute="dataLancamento">
            <div class="form-group">
                <label>Data</label>
                <input type="date" pattern="dd-MM-yyyy" name="dataLancamento">
                <form:erros path="dataLancamento"/>
            </div>
            <button type="submit" class="btn btn-primary">Procurar</button>
        </form:form>
    </div>

No ProdutoDAO.java:

    public List<Produto> findData(Calendar dataLancamento) {
        TypedQuery<Produto> query = manager.createQuery("Select p from Produto p where p.dataLancamento = :dataLancamento",Produto.class)
                .setParameter("dataLancamento",dataLancamento);
        return query.getResultList();

e a classe RelatorioProdutoController.java na qual criei:

package br.com.casadocodigo.loja.controllers;

import java.util.Calendar;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import br.com.casadocodigo.loja.dao.ProdutoDAO;
import br.com.casadocodigo.loja.models.Produto;

@Controller
@RequestMapping("/relatorio-produtos")
public class RelatorioProdutosController {

    @Autowired
    private ProdutoDAO produtoDao;

    @RequestMapping(value = "/relatorio-produtos")
    public String listaData() {
        return "relatorio-produtos";
    }

    @RequestMapping("/")
    @ResponseBody
    public List<Produto> dataJson(@ModelAttribute("dataLancamento") Calendar dataLancamento) {
        System.out.println(dataLancamento);
        return produtoDao.findData(dataLancamento);
    }
}
1 resposta
solução!

Deu certo, era só sobre o mapeamento.

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