Erro na passagem de parâmetro na action Create
16/04/2013 11:39
0
Tenho as classes Índice e Valor, onde através da classe índice quero adicionar um valor mensal.

Portanto no formulário do índice, crio o seguinte link para acrescentar valores:

<g:link class="property-value" controller="valor" action="create" params="[indice: indice?.id]">


E no controller da classe Valor, na ação Create, deixei da forma original

def create() {
[valorInstance: new Valor(params)]
}


Porém ocorre seguinte erro:

Failed to convert property value of type java.lang.String to required type sistema.Indice for property indice; nested exception is java.lang.IllegalStateException: Cannot convert value of type [java.lang.String] to required type [sistema.Indice] for property indice: no matching editors or conversion strategy found


Tentei fazer o seguinte:

def create() {
def valorInstance = new Valor()
[valorInstance: valorInstance, indice:params.indice]
}

A mensagem de erro não aparece mais, porém não dá efeito nenhum, como se eu não passasse nada por parâmetro.

Alguém tem alguma ideia de como resolver isto?
Tags: Grails, Parâmetros, params, Create, classe dependente, no matching editors or conversion strategy found


0
Quando você joga o params no construtor ele interpreta o construtor como um todo.

Tente colocar
 Valor(indice: params.id) 
mas precisa ver na sua Domain Valor as regras de validação e preenchimento.

Coloque o código das duas Domains para podermos analisar melhor e da controller (ou service) que retorna o id do indice dela.


0
Oi Eduardo, fiz o que vc recomendou e a mensagem foi a mesma: "no matching editors or conversion strategy found"

Segue as domains:
class Indice {
String nome
String sigla
static hasMany = [percMensais: Valor]
String toString(){
"${this.sigla} (${this.nome})"
}
static constraints = {
nome(nullable: false, blank:false, maxSize:50)
sigla(nullable: false, blank:false, maxSize:10)
}
}


e

class Valor {
Indice indice
Date data
Float percentual
static belongsTo = Indice
String toString(){
"${this.data.format('MM/yyyy')} - ${this.percentual}"
}
static constraints = {
indice(nullable:false, blank:false)
data(nullable:false, blank:false)
percentual(nullable:false, blank:false)
}
}




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