Fomulário Dinamico
05/06/2013 01:39
O campo [number] da classe [class evento.Phone] não pode ser vazia
O campo [type] da classe [class evento.Phone] não pode ser vazia
O campo [number] da classe [class evento.Phone] não pode ser vazia
O campo [type] da classe [class evento.Phone] não pode ser vazia
O campo [number] da classe [class evento.Phone] não pode ser vazia
O campo [type] da classe [class evento.Phone] não pode ser vazia
import org.springframework.dao.DataIntegrityViolationException
class ContactController {
static allowedMethods = [save: "POST", update: "POST", delete: "POST"]
def index() {
redirect(action: "list", params: params)
}
def list(Integer max) {
params.max = Math.min(max ?: 10, 100)
[contactInstanceList: Contact.list(params), contactInstanceTotal: Contact.count()]
}
def create() {
[contactInstance: new Contact(params)]
}
def save() {
def contactInstance = new Contact(params)
def _toBeRemoved = contactInstance.phones.findAll {!it}
// if there are phones to be removed
if (_toBeRemoved) {
contactInstance.phones.removeAll(_toBeRemoved)
}
//update my indexes
contactInstance.phones.eachWithIndex(){phn, i ->
if(phn)
phn.index = i
}
if (!contactInstance.save(flush: true)) {
render(view: "create", model: [contactInstance: contactInstance])
return
}
flash.message = message(code: 'default.created.message', args: [message(code: 'contact.label', default: 'Contact'), contactInstance.id])
redirect(action: "show", id: contactInstance.id)
}
def show(Long id) {
def contactInstance = Contact.get(id)
if (!contactInstance) {
flash.message = message(code: 'default.not.found.message', args: [message(code: 'contact.label', default: 'Contact'), id])
redirect(action: "list")
return
}
[contactInstance: contactInstance]
}
def edit(Long id) {
def contactInstance = Contact.get(id)
if (!contactInstance) {
flash.message = message(code: 'default.not.found.message', args: [message(code: 'contact.label', default: 'Contact'), id])
redirect(action: "list")
return
}
[contactInstance: contactInstance]
}
def update(Long id, Long version) {
def contactInstance = Contact.get(id)
if (!contactInstance) {
flash.message = message(code: 'default.not.found.message', args: [message(code: 'contact.label', default: 'Contact'), id])
redirect(action: "list")
return
}
if (version != null) {
if (contactInstance.version > version) {
contactInstance.errors.rejectValue("version", "default.optimistic.locking.failure",
[message(code: 'contact.label', default: 'Contact')] as Object[],
"Another user has updated this Contact while you were editing")
render(view: "edit", model: [contactInstance: contactInstance])
return
}
}
contactInstance.properties = params
// find the phones that are marked for deletion
def _toBeDeleted = contactInstance.phones.findAll {it?.deleted || !it}
// if there are phones to be deleted remove them all
if (_toBeDeleted) {
contactInstance.phones.removeAll(_toBeDeleted)
}
//update my indexes
contactInstance.phones.eachWithIndex(){phn, i ->
if(phn)
phn.index = i
}
if (!contactInstance.save(flush: true)) {
render(view: "edit", model: [contactInstance: contactInstance])
return
}
flash.message = message(code: 'default.updated.message', args: [message(code: 'contact.label', default: 'Contact'), contactInstance.id])
redirect(action: "show", id: contactInstance.id)
}
def delete(Long id) {
def contactInstance = Contact.get(id)
if (!contactInstance) {
flash.message = message(code: 'default.not.found.message', args: [message(code: 'contact.label', default: 'Contact'), id])
redirect(action: "list")
return
}
try {
contactInstance.delete(flush: true)
flash.message = message(code: 'default.deleted.message', args: [message(code: 'contact.label', default: 'Contact'), id])
redirect(action: "list")
}
catch (DataIntegrityViolationException e) {
flash.message = message(code: 'default.not.deleted.message', args: [message(code: 'contact.label', default: 'Contact'), id])
redirect(action: "show", id: id)
}
}
}
Para se registrar, clique aqui.