Aggiorna un campo Se il valore è fornito sulla vista o mantenere il valore precedente

StackOverflow https://stackoverflow.com//questions/11697156

  •  13-12-2019
  •  | 
  •  

Domanda

Sono un graal e Groovy Newbie. Sto cercando di aggiornare un campo nella classe del mio dominio, a condizione che il valore per il campo sia fornito dall'utente nella vista "Modifica".

La mia classe di dominio sembra: Class CertificationInfo {

static auditable = [ignore:['dateCreated','lastUpdated','account']]

String entityId
String certificate

String status
Timestamp dateCreated
Timestamp lastUpdated

Account account

CertificateInfo(){
    status = "ACTIVE"
}


static belongsTo = [account: Account]
//Db mappings not included
static constraints = {
    entityId size: 1..300, blank: false, unique: true
    certificate size: 1..4000, blank:false
    status in:['ACTIVE','INACTIVE'], blank: false
}
}
.

Nel mio modulo di modifica, il campo pertinente è:

<td>
<input type="file" name="certificate" value="${CertificateInfo ?.certificate}"/>
</td>
.

Quello che vorrei fare qui è: a) Se il nuovo file viene fornito, quindi sul tasto clic, questo file deve essere accettato come certificato.Questa porzione funziona e il nuovo file viene utilizzato per aggiornare il certificato b) Se non viene fornito un nuovo file, dovrebbe solo mantenere il vecchio valore.Questa porzione non funziona perché non so come affrontarla.

Sarei felice per qualsiasi suggerimento.

Grazie!

È stato utile?

Soluzione

Questo è delineato nella Guida per l'uso - http://grails.org/DOC / Ultima / Guida / TheWebLayer.html # uploadingFiles

Usando il primo esempio, faresti qualcosa come

 def f = request.getFile('certificate')
    if (f.empty) {
        // do nothing
    } else {
        f.transferTo(new File('/some/local/dir/myfile.txt'))
        // modify your object here and save.
        mycertificate.certificate = 'myfile.txt'  
    }
.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top