Ajuda sobre o tutorial do Kiko --> http://www.itexto.net/devkico/?p=885
02/08/2012 19:04
def consultar() {
def result = ['status': 1, 'mensagem': '', 'pai': null]
def pai = Pai.findAllByPai(params.id)
if (pai) {
result.pai = pai
} else {
result.status = 2
result.mensagem = 'Código não localizado'
}
render result as JSON
}
def salvar() {
def result = ['status': 1, 'mensagem': '']
if (!params.nome) {
result.status = 2
result.mensagem = 'Informe o Nome do Banco'
} else {
def pai = Pai.get(params.id)
if (!pai) {
pai = new Pai(params)
pai.filho = new Filho(params)
pai.neto = new Neto(params)
pai.properties = params
pai.save()
result.mensagem = 'Cadastro adicionado'
} else {
pai.properties = params
pai.merge()
result.mensagem = 'Cadastro atualizado'
}
if (!pai.save()) {
pai.errors.each {
println it
}
}
}
render result as JSON
}
def consultar() {
def result = ['status': 1, 'mensagem': '']
def pai = Pai.findAllByNome(params.id)
if (pai) {
result.pai = pai
} else {
result.status = 2
result.mensagem = 'Código não localizado'
}
render result as JSON
}
def salvar() {
def result = ['status': 1, 'mensagem': '']
if (!params.nome) {
result.status = 2
result.mensagem = 'Informe o Nome do Banco'
} else {
def pai = Pai.get(params.id)
if (!pai) {
pai = new Pai(params)
pai.filho = new Filho(params)
pai.neto = new Neto(params)
pai.save()
result.mensagem = 'Cadastro adicionado'
} else {
pai.properties = params
pai.merge()
result.mensagem = 'Cadastro atualizado'
}
if (!pai.save()) {
pai.errors.each {
println it
}
}
}
render result as JSON
}
Error 2012-08-02 21:05:09,571 [http-bio-8080-exec-3] ERROR errors.GrailsExceptionResolver - GroovyCastException occurred when processing request: [POST] /Teste/pai/salvar - parameters:
id:
neto.nome: p
filho.sobrenome: p
sobrenome: p
neto.status: p
filho.idade: 15
neto.sobrenome: p
filho.nome: p
nome: p
Cannot cast object 'p' with class 'teste.Filho' to class 'java.util.Set'. Stacktrace follows:
Message: Cannot cast object 'p' with class 'teste.Filho' to class 'java.util.Set'
Line | Method
->> 42 | salvar in teste.PaiController
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
| 195 | doFilter in grails.plugin.cache.web.filter.PageFragmentCachingFilter
| 63 | doFilter in grails.plugin.cache.web.filter.AbstractFilter
| 1110 | runWorker in java.util.concurrent.ThreadPoolExecutor
| 603 | run . . . in java.util.concurrent.ThreadPoolExecutor$Worker
^ 722 | run in java.lang.Thread
new Filho(params)
new Filho(nome:params.filho.nome, sobrenome: params.filho.sobrenome, idade: params.filho.idade)
def pai = Pai.get(params.id)
if (!pai) {
pai = new Pai(params)
pai.filho = new Filho(nome:params.filho.nome, sobrenome: params.filho.sobrenome, idade: params.filho.idade)
pai.neto = new Neto(nome:params.neto.nome, sobrenome: params.neto.sobrenome, status: params.neto.status)
pai.save()
result.mensagem = 'Cadastro adicionado'
| Error 2012-08-02 20:37:39,953 [http-bio-8080-exec-3] ERROR errors.GrailsExceptionResolver - GroovyCastException occurred when processing request: [POST] /Teste/pai/salvar - parameters:
id:
neto.nome: p
filho.sobrenome: p
sobrenome: p
neto.status: p
filho.idade: 15
neto.sobrenome: p
filho.nome: p
nome: p
Cannot cast object 'p' with class 'teste.Filho' to class 'java.util.Set'. Stacktrace follows:
Message: Cannot cast object 'p' with class 'teste.Filho' to class 'java.util.Set'
Line | Method
->> 42 | salvar in teste.PaiController$$ENeytwXw
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
| 195 | doFilter in grails.plugin.cache.web.filter.PageFragmentCachingFilter
| 63 | doFilter in grails.plugin.cache.web.filter.AbstractFilter
| 1110 | runWorker in java.util.concurrent.ThreadPoolExecutor
| 603 | run . . . in java.util.concurrent.ThreadPoolExecutor$Worker
^ 722 | run in java.lang.Thread
package teste
class Pai {
String nome
String sobrenome
static hasMany = [filho:Filho]
String toString() {this.nome}
static constraints = {
}
}
package teste
class Filho {
String nome
String sobrenome
Integer idade
static belongsTo = [pai:Pai]
static hasMany = [filho:Neto]
String toString() {this.nome}
static constraints = {
}
}
package teste
class Neto {
String nome
String sobrenome
String status
static belongsTo = [pai:Filho]
String toString(){this.nome}
static constraints = {
}
}
def pai = Pai.get(params.id)
if (!pai) {
pai = new Pai(params)
Filho filho = new Filho(nome:params.filho.nome, sobrenome: params.filho.sobrenome, idade: params.filho.idade)
pai.addToFilhos( filho )
Neto neto = new new Neto(nome:params.neto.nome, sobrenome: params.neto.sobrenome, status: params.neto.status)
filho.addToFilhos( neto )
pai.save(flush:true)
result.mensagem = 'Cadastro adicionado'
salvar: function() {
$('#form-pai').form('submit',{
url: paiScript.urls['salvar'],
success: function(data) {
data = eval('('+data+')');
if (data.status==1) {
paiScript.novo()
}
alert(data.mensagem);
}
});
},
def salvar() {
def result = ['status': 1, 'mensagem': '']
if (!params.nome) {
result.status = 2
result.mensagem = 'Informe o Nome do Banco'
} else {
def pai = Pai.get(params.id)
if (!pai) {
pai = new Pai(params)
Filho filho = new Filho(nome:params.filho.nome, sobrenome: params.filho.sobrenome, idade: params.filho.idade)
pai.addToFilhos(filho)
Neto neto = new Neto(nome:params.neto.nome, sobrenome: params.neto.sobrenome, status: params.neto.status)
filho.addToFilhos(neto)
pai.save(flush:true)
result.mensagem = 'Cadastro adicionado'
} else {
//pai.properties = params
pai.merge()
result.mensagem = 'Cadastro atualizado'
}
if (!pai.save()) {
pai.errors.each {
println it
}
}
}
render result as JSON
}
Para se registrar, clique aqui.