2

私はグレイルでグルーヴィーな初心者です。フィールドの値が「編集」ビューでユーザーによって提供されている場合、ドメインクラスのフィールドを更新しようとしています。

私のドメイン クラスは次のようになります。

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 に答える