我在驗證傳遞給控制器方法的參數時遇到了一些問題。Play Framework:應用控制器方法的自動驗證?
遵循教程的建議,我使用相同的控制器方法來爲實體「保存」和「創建新的」。見 http://www.playframework.org/documentation/1.2.4/guide9
例如所以,我的控制器方法是這樣的:
public static void saveEntity(long l, Long itemId,
@Required(message="error.shouldspecifyname") String name,
@Required(message="error.shouldspecifycategory") String category)
如果「ITEMID」不是通過HTTP請求發送的數據的一部分 - 它應該被設置爲「空」 。
不幸的是,它似乎是「玩」自動添加驗證錯誤的「失蹤」參數。
當尋找到驗證錯誤列表中,每次‘ITEMID’是‘空’ - 我得到一個錯誤不正確的值現場的itemId
它是一個記錄的行爲?任何方式來覆蓋它,或「擺脫」的錯誤。
我處理錯誤簡單地使用重定向,如:
if(validation.hasErrors())
{
validation.keep();
showSomePage();
}
所以會顯示錯誤「走出上下文」他們得到產生。這是「自動」錯誤困擾我的原因。
感謝您的任何提示。
感謝您提供替代方案。偶爾,有沒有一種方法可以通過鍵刪除驗證?在我的試驗中,「errors()」列表是原始列表的「克隆」,因此對它的任何操作都不會更改發送到重定向頁面的數據。 – Max 2012-03-05 07:57:31
你不能通過id去除錯誤,但你可以使用類似if(validation.hasError(「itemId」)&& validation.errors()。size()== 1){\t \t \t validation.clear() ; } – 2012-03-05 08:58:03