我使用html編碼爲我的表單輸入字段。我有一個表單來創建一個新的用戶對象,其中可以爲新用戶插入一個名稱。爲了防止腳本注入這個輸入字段,我在下面列出的save()動作中做encodeAsHTML()。如何在Grails中對HTML屬性進行HTML編碼時正確驗證域類?
問題: 1.輸入的名稱是:Schäfchen 2.這將正確下面 3. HTML編碼我的驗證規則後進行驗證變換成\ AUML將失敗驗證
哪有我實現了,在HTML編碼的名稱將被正確驗證?
鑑於以下的Grails類:
class User {
String name
static constraints = {
name blank: false, validator: { val, obj ->
Pattern pattern = Pattern.compile("[a-zA-Z0-9äöüßÄÖÜ\\- ]+")
pattern.matcher(val).matches()
}
}
}
在我UserController.groovy
:
dev save() {
def name = params?.name?.encodeAsHTML()
def user = new User()
user.name = name
user.save()
}
爲什麼你的數據爲html在域編碼?在頁面上顯示時,您始終可以/應將其編碼爲html。 –
你可以給一些示例代碼嗎?何時使用encodeAsHTML()以及何時使用decodeHTML()? – confile