2

我是一个 grails 和 groovy 新手。我正在尝试更新我的域类中的字段,前提是该字段的值由用户在“编辑”视图中提供。

我的域类看起来像:class CertificateInfo {

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>

我想在这里做的是:a)如果提供了新文件,则单击按钮,该文件应被接受为证书。这部分有效,新文件用于更新证书 b) 如果未提供新文件,则它应该只保留旧值。这部分不起作用,因为我不知道如何处理它。

我很高兴有任何建议。

谢谢!

4

1 回答 1

0

这在用户指南中进行了概述 - http://grails.org/doc/latest/guide/theWebLayer.html#uploadingFiles

使用第一个示例,您将执行类似的操作

 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'  
    }
于 2012-07-28T00:39:55.727 回答