2012-10-14 30 views
1

我想在Play框架中進行表單驗證,根據驗證的附屬結果產生一個變量錯誤信息。我怎樣才能做到這一點乾淨?Play中的變量/自定義錯誤消息! 2框架scala的形式

具體例 - 說我有一個形式定義從而:

val f = Form(
    "xml" -> text 
     .verifying(
     "xml is incorrect", 
     xml => validationError(xml) == None 
    ) 
) 

    def validationError(xml: String): Option[String] 

怎麼辦顯示,而不是固定的字符串由validationError作爲驗證錯誤消息返回的字符串,「xml的不正確」 ?

回答

1

您可以創建Constraint實例來處理它。例如:

val xmlConstraint = Constraint[String](Some("xml.constraint"), Nil)(xml => 
    validationError(xml).map(msg => Invalid(ValidationError(msg))).getOrElse(Valid) 
) 

val f = Form("xml" -> text.verifying(xmlConstraint)) 

此外,存在於Constraint對象的另一apply方法沒有指定約束的名稱。

+0

作品!謝謝!當我自己研究它時,我被卡在了ValidationResult(它是一個標記特徵,完全空白)。 – jsalvata