我正在使用Java Play 2.0.1同時使用自定義驗證和play.data.validation.constraints,並且正在尋找一種方法來顯示窗體中發生的每一個錯誤,而不管無論我的代碼是驗證還是播放。顯示所有驗證錯誤使用flash()
我目前在做什麼來顯示所有錯誤,是我有一個方法在我的控制器添加包含在從form.errors()
檢索的地圖中的所有錯誤,然後將它們添加到閃光範圍,所有錯誤都會被檢測到,但在第一次重定向時不會顯示,直到play.data.validation錯誤得到修復。
public static void addFlashError(Map<String, List<ValidationError>> errors){
for(String key : errors.keySet()){
List<ValidationError> currentError = errors.get(key);
for(ValidationError error : currentError){
flash(key, error.message());
}
}
}
然後在我的scala.html顯示錯誤
<div class="alert-message error">
@for((key, value) <- flash){
<strong>Error : </strong> @value<br />
}
</div>
但這似乎並沒有成爲最簡單的解決方案,併發揮並不在同一時間顯示自定義驗證錯誤play.data.validation錯誤,就像顯示play.data.validation錯誤一樣,然後如果沒有Play檢查以查看該表中包含的公共String validate()
是否包含。
是否有一個簡單的方法來顯示錶單中的所有錯誤,而不是play.data.validation錯誤,然後自定義驗證錯誤,如果play.data.validation錯誤不存在?
爲什麼你將錯誤添加到閃存?你爲什麼不把'Map>'傳遞給你的視圖?除此之外,你問2個問題..;) –
我想你是對的兩個問題的一部分,抱歉,我會編輯修復它。至於我爲什麼添加到閃光燈,它是保持在重新指導的範圍內的錯誤。 –