Обновите поле, если значение предусмотрено на представлении или сохранить предыдущее значение

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

  •  13-12-2019
  •  | 
  •  

Вопрос

Я грастил и Groovy Newbie. Я пытаюсь обновить поле в моем классе домена, при условии, что значение для поля предоставляется пользователем в представлении «Изменить».

Мой класс домена выглядит как: Класс reateaseInfo {

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
}
}
.

в моей форме редактирования, соответствующее поле:

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

Что я хотел бы сделать здесь: а) Если новый файл предоставляется, затем на кнопке нажмите, этот файл должен быть принят в качестве сертификата.Эта порция работает, и новый файл используется для обновления сертификата б) Если новый файл не предоставлен, то он должен просто сохранить старое значение.Эта часть не работает, потому что я не знаю, как его подойти.

Я был бы рад за любые предложения.

Спасибо!

Это было полезно?

Решение

Это изложено в руководстве пользователя - http://grails.org/DOC / Neighle / Guide / TheWeblayer.html # ЗагрузкаФИЛ

Используя первый пример, вы сделаете что-то вроде

 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'  
    }
.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top