我有一個用戶域類,在其中有一個名爲性別的枚舉字段。它具有男性和女性的價值。當我在GSP頁面上表示它時,它顯示爲一個下拉菜單。爲了測試網絡應用程序的安全性,我使用firebug將男性的值改爲0來查看驗證是否抓住了它。我的確如此,但它顯示的信息不是人類可讀的。我在我的messages.properties中使用了以下內容。Grails messages.properties typeMismatch錯誤消息
typeMismatch.User.gender=The value for {0} is {1} and it is not a valid value
但問題是,當我的GSP呈現錯誤時,它不會用下拉列表的被拒絕值替換{1}。我嘗試了{2}和{3}等,它只將它們打印爲字符串,並且不替換它們。有沒有辦法在郵件中獲取rejectedValue?
更新:我必須toString方法在我的枚舉性別太。這裏是一些來自controller和gsp頁面的代碼。
控制器:
if (bioInstance.hasErrors() || currentUser.hasErrors()) {
render(view: 'editProfile', model: [user: currentUser, bioInstance: bioInstance])
return
}
GSP:
<g:hasErrors beans="[bioInstance:Bio,user:User]">
<ul class="alert alert-danger">
<g:renderErrors beans="[bioInstance:Bio,user:User]" as="list"/>
</ul>
</g:hasErrors>
你對enum有'toString()'方法嗎? – brwngrldev
不,我不知道。我需要一個嗎? – AlexCon
是的,你也應該發佈更多的代碼,以便更容易診斷。控制器方法和gsp頁面的一部分。謝謝 – brwngrldev