REST - 如何处理单页面应用程序中的验证错误

时间:2017-01-17 17:52:19

标签: javascript spring rest validation reactjs

当我通过REST提交表单并获得验证错误时,我想保留有效的字段并恢复验证失败的现有值,并显示这些字段失败的消息。

使用Spring MVC进行服务器端渲染很容易,但在客户端执行此操作的最佳方法是什么?我知道我可以返回自定义错误对象,并创建一个javascript函数,它将拦截它并相应地设置字段。

但是有没有一些库或模式可以减少客户端验证错误反馈的样板?我正在研究React和Spring。

修改

通过验证,我并不仅仅指输入字段的正确数据类型和长度,而是取决于对象的内部状态及其根据业务规则的关系的一些约束。客户端应该只验证数据类型,服务器应该执行业务验证。问题是,如何处理服务器中的验证失败,如上所述。

2 个答案:

答案 0 :(得分:0)

JQuery Validation插件怎么样? https://jqueryvalidation.org/valid/

答案 1 :(得分:0)

最简单的方法是调整某种框架。我个人对表单验证的偏好是AngularJs。

开箱即用,带有检查所需输入的指令,以及正则表达式验证,最小/最大..以及其他一些。

与ngMessages指令合作,可以提供顺畅的体验。

请查看https://docs.angularjs.org/guide/forms了解详情.. 欢呼声

给你一个例子考虑以下代码的优雅:

<form name="myForm">
  <label>
    Enter your name:
    <input type="text"
           name="myName"
           ng-model="name"
           ng-minlength="5"
           ng-maxlength="20"
           required />
  </label>
  <pre>myForm.myName.$error = {{ myForm.myName.$error | json }}</pre>

  <div ng-messages="myForm.myName.$error" style="color:maroon" role="alert">
    <div ng-message="required">You did not enter a field</div>
    <div ng-message="minlength">Your field is too short</div>
    <div ng-message="maxlength">Your field is too long</div>
  </div>
</form>