2014-09-19 45 views
4

Qustion:服務器端驗證與Spring MVC和淘汰賽JS

我找了一個很好的解決方案來驗證Spring MVC控制器我的數據,並與Knockout JS填充錯誤。我想象一下類似於Spring Tags現有的<form:errors path="">。 該解決方案應該提供以下性能:

  1. 表單提交使用jQuery和AJAX
  2. @ModelAttribute@Valid
  3. 錯誤消息
  4. 服務器端驗證,應自動填充到一些「淘汰賽錯誤標籤」

是否有類似的東西已經存在?如果這可以提供所需的功能,我也可以切換到另一個JS框架。 (角,骨幹網等)


我定製的解決方案:

我存儲在一個Map<String, String>,其中關鍵是字段名和值的所有錯誤是錯誤訊息,人口中的錯誤擊倒。這個解決方案的問題在於,KnockoutJS在驗證後失去所有未綁定的字段。

驗證:

helper.getErrors().put("firstName", messageSourceProvider.getMessage("validation.requiredDefault")); 

序列化:

JSONSerializer serializer = new JSONSerializer(); 
serializer.include("helper"); 
serializer.include("helper.errors"); 
String json = serializer.serialize(helper); 

淘汰賽:

<!-- ko foreach: errors --> 
    <!-- ko if: key === 'firstName' --> 
     <span data-bind='text: value' class="spring-error ordinary-tooltip fa fa-lg fa-exclamation-circle"></span> 
    <!-- /ko --> 
<!-- /ko --> 
+1

您可能能夠將https://github.com/Knockout-Contrib/Knockout-Validation與來自後端的錯誤響應相結合。 – FredrikO 2014-12-08 15:39:12

回答

0

我已經着手處理您的問題的方法是火了之前一個Ajax調用允許表單提交。如果存在驗證問題或錯誤,我會停止提交併顯示錯誤。這樣綁定仍然完好無損,在用戶修復問題後,表單數據可以重新提交。