更新域實例時,我需要在允許更新之前檢查一些數據。 我在beforUpdate方法中創建了它,它可以防止更新,但在Flash消息中,您可以閱讀「域68已更新!」這不是我想要展示給用戶的。Grails,如果我發現錯誤,該如何從域中發送消息(鍵入flash)?
更新前是這樣的:
def beforeUpdate() {
def oldVolume = getPersistentValue('volumeInStock')
if (oldVolume != volumeInStock && oldVolume!=volumeInitial){
throw new ValidationException("Changing InStock not allowed after offer/sold or planed volumes added!",this)
}
}
我在想拋出一個異常,而是不敢看,因爲我想的那麼簡單。當我嘗試上面的代碼時說它有這樣的方法。我找不到任何示例或說明我應該怎樣打電話。 所以主要的問題是如何告知用戶這個問題? 是否使用異常的Wright方式,那麼我需要一些幫助如何做到這一點,否則我還能做什麼? :(
嘗試更改拋出新的ValidationException(「更改InStock不允許在提供/出售或計劃卷添加!」,this)'this.errors.rejectValue('volumeInStock',「failedVolume.error')' – Vahid
不會阻止grails保存實例,但如果我使用「return false」,那就只需要停止它就可以保存。但是當然,我沒有收到消息 - 它仍然表示已更新。 – larand