Campo Date no formulario
11/01/2016 00:42
0
estou com um problema com Date, tenho na minha class de Dominio 3 campos do tipo Date quando vou passa ele no formulário ele esta apresentando um erro no console

Cannot cast object '17/05/2016' with class 'java.lang.String' to class 'java.util.Date'. Stacktrace follows:
Message: Cannot cast object '17/05/2016' with class 'java.lang.String' to class 'java.util.Date'


dei um procurada e chei um amigo falando que eu tinha que adiciona a seguinte linha
grails.databinding.dateFormats = ["dd/mm/yyyy"]?
no arquivo config.groovy e o problema seria solucionado so que fiz isso ja mas ainda estou com problema alguma alma caridosa poderia me dar um luz, depois de adiciona essa linha tenho que fazer algum import ou fazer mas alguma coisa .


 
Tags: Grails


0
Oi Angelo,

o primeiro passo é ver o que está chegando no seu controlador. 
O atributo dataBindings, define qual vai ser o formato de data que seu controlador espera receber. Sendo assim, escreva em sua action um código similar ao exposto abaixo:

render params


Isto irá imprimir no seu browser os parâmetros e valores associados que ele recebeu. Com base nisto, você pode ver se a data está chegando no formato que você configurou na chave exposta acima.


1
O correto não seria "dd/MM/yyyy"? Pois o java entende "mm" como minutos.
11/01/2016 10:16


0
Bem observado Willian!


0
boa tarde Henrique Lobo
Conseguir soluciona da seguinte forma criei um sevices para fazer essa conversão
package osdigital
import grails.transaction.Transactional
import java.text.SimpleDateFormat
@Transactional
class ParseDateService {
static Date parseDate(String dateToValidate, String dateFormat){
def sdf = new SimpleDateFormat(dateFormat)
Date date = sdf.parse(dateToValidate)
return date
}
static Date parseDateFormatBrasil(String date){
return parseDate(date, 'dd/MM/yyyy')
}
}

la no meu controller chamo ele assim

?def parseDateService

e quando vou coleta o dado do formulario coleto da seguinte forma
os.dataPedido = parseDateService.parseDateFormatBrasil(params.datapedido)
os.dataInicio = parseDateService.parseDateFormatBrasil(params.datainicio)
os.dataFim = parseDateService.parseDateFormatBrasil(params.datafim)?

pelo menos o erro que estava tendo não estou tendo mas porem no final da classe que tinha colocado um validate para  se estive tudo ok ele salvar caso tenha algum erro ele coloca um mensagem simples de erro vou coloca o codigo da minha função salvar:

? def salvar (){

render params
Os os = new Os()
os.dataPedido = parseDateService.parseDateFormatBrasil(params.datapedido)
os.dataInicio = parseDateService.parseDateFormatBrasil(params.datainicio)
os.dataFim = parseDateService.parseDateFormatBrasil(params.datafim)
os.statusos = params.status
os.responsavel = params.responsavel
os.foneResponsavel = params.foneResponsavel
os.cliente = params.cliente
os.rua = params.rua
os.bairro = params.bairro
os.numero = params.numero
os.cidade = params.cidade
os.uf = params.uf
os.contato = params.contato
os.foneContato = params.foneContato
os.emailContato = params.emailContato
os.servico = params.servico
os.atividade = params.atividade
os.nf = params.nf
os.numeroPedido = params.numeroPedido
os.valorOs = params.valorOs
os.tipoValor = params.tipoValor
os.nunFolha = params.nunFolha

os.validate()
if (!os.hasErrors()){

os.save(flush: true)
render("! Salvo com Sucesso")
}else{

render("!!Erro!!")


}

}


}


so que agora ele esta apresentando um erro e não salva.
ele na retorna isso no render.

'datapedido':'17/05/2016', 'contato':'iuo', 'uf':'iuo', 'datafim':'17/05/2016', 'foneContato':'uo', 'statusos':'Andamento', 
'numero':'oiu', 'id':'', 'tipoValor':'Cotado', 'valorOs':'iuoiuoi',
'servico':'iuoiuoi', 'bairro':'uou', 'cidade':'oiuo',
'foneResponsavel':'oiuo', 'datainicio':'17/05/2016',
'nunFolha':'iuoiuoiuoiu', 'cliente':'iuoi', 'rua':'uoi', 'nf':'oiuoiuo',
'responsavel':'oiuoiu', 'emailContato':'iuo', 'numeroPedido':'uoiuo',
'atividade':'uoiuoiu', 'action':'salvar', 'format':null,
'controller':'os']!!Erro!!

isso ainda he por causa da data ?
ou he um erro de javascript ?
11/01/2016 15:39


0
no console ele esta me dando esse erro

?016-01-11 15:35:36,040 [Thread-11] ERROR plugins.AbstractGrailsPluginManager  - Plugin [controllers:2.4.4] could not reload changes to file [C:\Users\jamar\IdeaProjects\osdigital\grails-app\controllers\osdigital\OsController.groovy]: Cannot invoke method getPropertyValue() on null object
Message: Cannot invoke method getPropertyValue() on null object
   Line | Method
->> 120 | configureScaffoldingController in ScaffoldingGrailsPlugin
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
^   105 | doCall                         in ScaffoldingGrailsPlugin$_closure3
11/01/2016 15:42


0
Olá Angello,
  Para visualizar os erros do seu objeto basta usar "os.errors" no lugar de "render("!!Erro!!")".
13/01/2016 11:53


0
corrigindo...
  Para visualizar os erros do seu objeto basta usar "render(os.errors)" no lugar de "render("!!Erro!!")".
13/01/2016 14:37



Ainda não faz parte da comunidade???

Para se registrar, clique aqui.


Aprenda Groovy e Grails com a Formação itexto!

Newsletter Semana Groovy

Assinar

Envie seu link!


Livro de Grails


/dev/All

Os melhores blogs de TI (e em português) em um único lugar!

 
Creative Commons
RSS Grails Brasil é mantido por itexto Consultoria.
Em caso de problemas contacte Henrique Lobo Weissmann (Kico) por e-mail: kico@itexto.com.br
Todo o conteúdo presente neste site adota o Creative Commons como licença padrão.
Ver: 4.14.0
itexto