2014-09-19 44 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调用允许表单提交。如果存在验证问题或错误,我会停止提交并显示错误。这样绑定仍然完好无损,在用户修复问题后,表单数据可以重新提交。