我是一个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)如果没有提供新文件,那么它应该保留旧值。这部分不起作用,因为我不知道如何处理它。
我很乐意提出任何建议。
谢谢!
答案 0 :(得分: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'
}