Validação na classe Controller
30/09/2008 00:00
Olá pessoal, estou com o seguinte problema, na minha classe Controller. No evento update, tenho a seguinte regra de validação e atribuição de valores a variáveis:
def update = {
def advogado = Advogado.get( params.id )
if(advogado) {
advogado.properties = params
if("${params.Foro} == 'C'"){
advogado.ADV_ATUA_CIVEL = 'S'
advogado.ADV_ATUA_FAMILIA = '0'
advogado.ADV_ATUA_INFCIVEL = '0'
advogado.ADV_INFJUVCRIM = '0'
advogado.ATV_ATUA_CRIMINAL = '0'
advogado.ADV_ATUA_JURI = '0'
advogado.ADV_ATUA_JUIZESPCRIMINAL = '0'
advogado.ADV_ATUA_JUIZESPCIVEL = '0'
advogado.ADV_ITINERANTE = '0'
advogado.ADV_ATUA_JUSTMILITAR = '0'
}
else
if ("${params.Foro} == 'F'") {
advogado.ADV_ATUA_FAMILIA = 'S'
advogado.ADV_ATUA_CIVEL = '0'
advogado.ADV_ATUA_INFCIVEL = '0'
advogado.ADV_INFJUVCRIM = '0'
advogado.ATV_ATUA_CRIMINAL = '0'
advogado.ADV_ATUA_JURI = '0'
advogado.ADV_ATUA_JUIZESPCRIMINAL = '0'
advogado.ADV_ATUA_JUIZESPCIVEL = '0'
advogado.ADV_ITINERANTE = '0'
advogado.ADV_ATUA_JUSTMILITAR = '0'
}
if(!advogado.hasErrors() && advogado.save()) {
flash.message = "Advogado ${params.id} updated"
redirect(action:show,id:advogado.id)
}
else {
render(view:'edit',model:[advogado:advogado])
}
}
//Meu exemplo de campo select
<g:select name="Foro" keys="${['C', 'F'}"
from="${['Civel','Familia']}">
</g:select>
De acordo com o que recebo no meu campo select, vou atribuir um valor aos atributos acima.
Meu problema é que isso tudo tá estranho, pois quando ele cai no segundo "if" nada é atribuído aos atributos, ou seja, ela não grava nada no banco como era pra ser feito.
Já passaram por isso antes? Existe uma forma mais inteligente de fazer essa validação sem que ocorra esses problemas
Tags:
Grails