Boa noite galera tudo bem?
Estou fazendo um trabalho de TCC e estou utilizando o Spring MVC, não tenho muito conhecimento nesse framewok.
é o seguinte estou tentando fazer um formulário onde ele não deixa o usuário cadastrar a data <= que a data atual isso consegui fazer via javascript na view.
agora estou na etapa em que eu deveria pegar a data que o usuário digitou e verificar se a mesma já foi cadastrada no banco, porem não estou conseguindo ver e enviar os dados da view para a control
poderiam me dar uma força?
segue os códigos da view e da control
[QUOTE]
<%@ page contentType=“text/html; charset=UTF-8” pageEncoding=“UTF-8” %>
<%@ taglib uri=“http://java.sun.com/jsp/jstl/core” prefix=“c” %>
<%@ taglib uri=“http://github.com/dandelion” prefix=“dandelion” %>
<%@ taglib prefix=“spring” uri=“http://www.springframework.org/tags” %>
<%@ taglib prefix=“form” uri=“http://www.springframework.org/tags/form” %>
<c:set var=“actionSalvar”><c:url value="/cardapios/salvar"/></c:set>
<dandelion:bundle includes=“jquery.validation,jquery.inputmask,jquery.datetimepicker” />
'>Cardápios" /> Cadastro de cardápios $(document).ready(function() { var formValidator = $("#cardapio").validate({ rules : { data : { required : true, }, tipoRefeicao : { required : true }, pratoBase : { required : true, maxlength : 50 ,minlength:3}, pratoPrincipal : { required : true, maxlength : 100 ,minlength:3}, guarnicao : { required : true, maxlength : 100 ,minlength:3}, salada : { required : true, maxlength : 50 ,minlength:3}, sobremesa : { required : true, maxlength : 50 ,minlength:3}, suco : { required : true, maxlength : 50 ,minlength:3} } }); $("#data").focus(); $("#div-data").datetimepicker({locale: "pt-br", format: "DD/MM/YYYY"}); $("#data").inputmask("99/99/9999"); }); function comparaData()
{
var data = document.getElementById('data').value;
var objDate = new Date();
objDate.setYear(data.split("/")[2]);
objDate.setMonth(data.split("/")[1] - 1);//- 1 pq em js é de 0 a 11 os meses
objDate.setDate(data.split("/")[0]);
if(objDate.getTime() <= new Date().getTime()){
alert("Data cardapio não pode ser menor ou igual a data atual");
document.getElementById('data').value='';
return false;
}
}
</script>
<form:form action="${actionSalvar}" modelAttribute="cardapio" >
<form:hidden path="id" />
<div class="panel panel-primary col-xs-12 col-md-8 col-md-offset-2">
<div class="panel-body">
<div class="page-header" style="margin-top: 10px;">
<jsp:include page="/layouts/modal-mensagens.jsp"><jsp:param name="model" value="cardapio"/></jsp:include>
<h3>
<strong>Cardápio</strong>
</h3>
</div>
<div class="row">
<spring:bind path="data">
<div class="form-group col-xs-12 col-md-6">
<label for="data" class="control-label">Data</label>
<div class="input-group date" id="div-data">
<form:input path="data" class="form-control" onblur="comparaData();" items="${pesquisaDataCardapio}" action="pesquisaData"/>
<span class="input-group-addon">
<span class="glyphicon glyphicon-calendar"></span>
</span>
</div>
</div>
</spring:bind>
<spring:bind path="tipoRefeicao">
<div class="form-group col-xs-12 col-md-6">
<label for="tipoRefeicao" class="control-label">Refeição</label>
<form:select path="tipoRefeicao" class="form-control">
<form:option value="" label="----- Selecione uma refeição -----"/>
<form:options items="${tipoRefeicao}" itemLabel="descricao" itemValue="id" />
</form:select>
</div>
</spring:bind>
</div>
<div class="row">
<spring:bind path="pratoBase">
<div class="form-group col-xs-12 col-md-6 ${status.error ? 'has-error' : ''}">
<label for="pratoBase" class="control-label">Prato Base</label>
<form:input path="pratoBase" class="form-control" placeholder="Digite o prato base" pattern="[^0-9]+"/>
<span class="has-error"><form:errors path="pratoBase" class="help-block"/></span>
</div>
</spring:bind>
<spring:bind path="pratoPrincipal">
<div class="form-group col-xs-12 col-md-6 ${status.error ? 'has-error' : ''}">
<label for="pratoPrincipal" class="control-label">Prato Principal</label>
<form:input path="pratoPrincipal" class="form-control" placeholder="Digite o prato principal" pattern="[^0-9]+"/>
<span class="has-error"><form:errors path="pratoPrincipal" class="help-block"/></span>
</div>
</spring:bind>
</div>
<div class="row">
<spring:bind path="guarnicao">
<div class="form-group col-xs-12 col-md-6 ${status.error ? 'has-error' : ''}">
<label for="guarnicao" class="control-label">Guarnição</label>
<form:input path="guarnicao" class="form-control" placeholder="Digite a guarnição" pattern="[^0-9]+"/>
<span class="has-error"><form:errors path="guarnicao" class="help-block"/></span>
</div>
</spring:bind>
<spring:bind path="salada">
<div class="form-group col-xs-12 col-md-6 ${status.error ? 'has-error' : ''}">
<label for="salada" class="control-label">Salada</label>
<form:input path="salada" class="form-control" placeholder="Digite a salada" pattern="[^0-9]+"/>
<span class="has-error"><form:errors path="salada" class="help-block"/></span>
</div>
</spring:bind>
</div>
<div class="row">
<spring:bind path="sobremesa">
<div class="form-group col-xs-12 col-md-6 ${status.error ? 'has-error' : ''}">
<label for="sobremesa" class="control-label">Sobremesa</label>
<form:input path="sobremesa" class="form-control" placeholder="Digite a sobremesa" pattern="[^0-9]+"/>
<span class="has-error"><form:errors path="sobremesa" class="help-block"/></span>
</div>
</spring:bind>
<spring:bind path="suco">
<div class="form-group col-xs-12 col-md-6 ${status.error ? 'has-error' : ''}">
<label for="suco" class="control-label">Suco</label>
<form:input path="suco" class="form-control" placeholder="Digite o suco" pattern="[^0-9]+"/>
<span class="has-error"><form:errors path="suco" class="help-block"/></span>
</div>
</spring:bind>
</div>
</div>
<div class="form-group col-x-12 col-md-12" style="text-align: center; margin-top: 25px;">
<button type="submit" class="btn btn-primary"><span class="glyphicon glyphicon-floppy-disk"></span> Salvar</button>
</div>
</div>
</form:form>
[/QUOTE]
código controller
[QUOTE]
package com.github.projetoleaf.controllers;
import java.lang.ProcessBuilder.Redirect;
//import java.sql.Date;
//import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.validation.Valid;
//import javax.xml.crypto.Data;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.MessageSource;
import org.springframework.data.domain.Sort;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
import com.github.projetoleaf.beans.Cardapio;
import com.github.projetoleaf.beans.TipoRefeicao;
import com.github.projetoleaf.repositories.CardapioRepository;
import com.github.projetoleaf.repositories.TipoRefeicaoRepository;
import lombok.extern.slf4j.Slf4j;
@Slf4j
@Controller
@RequestMapping("/cardapios")
public class CardapioController {
@Autowired
private CardapioRepository cardapioRepository;
@Autowired
private TipoRefeicaoRepository tipoRefeicaoRepository;
@Autowired
private MessageSource config;
@GetMapping
public String pesquisarCategoria(Model model) {
model.addAttribute("listagemCardapios", cardapioRepository.findAll(new Sort(Sort.Direction.ASC, "data")));
return "/cardapios/pesquisar";
}
@GetMapping("/incluir")
public String incluirCardapio(Model model) {
TipoRefeicao trad = tipoRefeicaoRepository.findByDescricao("Tradicional");
TipoRefeicao veget = tipoRefeicaoRepository.findByDescricao("Vegetariano");
List<TipoRefeicao> tipoRefeicao = new ArrayList<TipoRefeicao>();
tipoRefeicao.add(trad);
tipoRefeicao.add(veget);
model.addAttribute("cardapio", new Cardapio());
model.addAttribute("tipoRefeicao", tipoRefeicao);
return abrirCadastroCardapio(model);
}
@GetMapping("/editar/{id}")
public String editarCardapio(@PathVariable Long id, Model model) {
Cardapio cardapio = cardapioRepository.findOne(id);
TipoRefeicao trad = tipoRefeicaoRepository.findByDescricao("Tradicional");
TipoRefeicao veget = tipoRefeicaoRepository.findByDescricao("Vegetariano");
List<TipoRefeicao> tipoRefeicao = new ArrayList<TipoRefeicao>();
tipoRefeicao.add(trad);
tipoRefeicao.add(veget);
model.addAttribute("cardapio", cardapio);
model.addAttribute("tipoRefeicao", tipoRefeicao);
return abrirCadastroCardapio(model);
}
public String abrirCadastroCardapio(Model model) {
return "/cardapios/cadastro";
}
@PostMapping("/salvar")
public String salvarCardapio(Model model, @ModelAttribute("cardapio") @Valid Cardapio cardapio, BindingResult result) {
try {
if (!result.hasErrors()) {
Cardapio cardapioAtualizado = cardapioRepository.save(cardapio);
log.info(cardapioAtualizado.toString() + " gravado com sucesso");
model.addAttribute("mensagemInfo", config.getMessage("gravadoSucesso", new Object[] { "o cardápio" }, null));
}
}
catch (Exception ex) {
log.error("Erro de processamento", ex);
model.addAttribute("mensagemErro", config.getMessage("erroProcessamento", null, null));
}
return "redirect:/cardapios";
}
@GetMapping("/excluir/{id}")
public String excluirCardapio(RedirectAttributes ra, @PathVariable Long id) {
try {
cardapioRepository.delete(id);
log.info("Cardápio #" + id + " excluído com sucesso");
ra.addFlashAttribute("mensagemInfo", config.getMessage("excluidoSucesso", new Object[] { "o cardápio" }, null));
}
catch (Exception ex) {
log.error("Erro de processamento", ex);
ra.addFlashAttribute("mensagemErro", config.getMessage("erroProcessamento", null, null));
}
return "redirect:/cardapios";
}
@PostMapping("/pesquisaData")
public String pesquisaDataCardapio(Model model, @ModelAttribute("cardapio") Cardapio cardapio)
{
System.out.println("entrou controler");
if(cardapioRepository.verificarSeDataExisteNoBD(cardapio.getData())!= null)
return "redirect:/cardapios/erro";
else
return "redirect:/cardapios/incluir";
}
}
[/QUOTE]