[英]set value of a field in gsp grails
我有一個相冊域課程;
class Album {
String caption
String description
SortedSet pictures
static hasMany = [pictures:Picture,posts:Post]
}
class Post {
Album album
Picture picture
String caption
String content
}
在我的gsp中,我試圖設置相應相冊和圖片的值;
<label for="picture">
<g:message code="post.picture.label" default="Picture" />
</label>
**<span id="picture" aria-labelledby="picture-label">${pictureInstance?.caption?.encodeAsHTML()}</span>**
<label for="album">
<g:message code="post.album.label" default="Album" />
</label>
**<span id="album" aria-labelledby="album-label">${pictureInstance?.album?.encodeAsHTML()}</span>**
盡管在瀏覽器中,我在相冊和圖片標簽的前面看到了正確的值,但是當我嘗試保存帖子時, 它說屬性圖片和相冊不能為null 。 我不明白為什么不將這些值寫入數據庫。
如果我的解決方法不正確,那么任何其他建議都會有很大幫助
謝謝..
Grails具有強大的機制來驗證域類中定義的屬性。 約束塊可用於為在其中傳遞閉包的屬性定義規則。 您可以在其中定義許多規則,例如空白,可為空,最小和最大大小等。 每當在grails中調用save()時,它都會自動調用validate方法,該方法將驗證這些約束。
我認為,如果您未在grails中的屬性約束內定義任何規則,則案例的問題是默認情況,那么它們將采用默認值,例如您的案例中不能為null。 因此,您收到的消息不能為空。 為此,定義域類中約束塊內不同屬性的必需規則
靜態約束= {
圖片可為空:true,空白:true;
相簿可為空:true
//其他屬性的規則在這里
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.