避免JavaScript前端和Java后端的validation码重复?
我们有一个标准的Web应用程序,前端使用Angular,后端使用Java 7编写。我注意到的是,我们得到了很多重复的代码。 也就是说,validation是通过angular度来执行客户端的,但是我不能完全相信他,因为用户可以禁用客户端validation并简单地向服务器提交发布的查询。
因此,我必须在服务器端重复Java中的相同validation逻辑。 这是非常乏味的,但我不知道如何避免这种情况。 也许我可以用一个javascript框架(假设它是Node.js)编写一些后端部分,可以使用与前端相同的validation库,并使Java后端与node.js交互? 为了解决这个问题,最好的办法是什么?
Java可以运行JavaScript代码和其他dynamic脚本语言。 在Java 7中,JavaScript ScriptEngine被称为Rhino,在Java 8中被称为Nashorn。
Java 7的Oracle Java脚本编程人员指南: https : //docs.oracle.com/javase/7/docs/technotes/guides/scripting/programmer_guide/
也许你可以在js文件中编写纯粹的JavaScript文件,这些文件可以放在后端来为客户端服务,也可以在服务器端执行。
AngularBeans框架允许你在java端定义BeanValidation并转换成angular度表单validation,所以代码不会被复制。 看看这篇文章中使用的例子。
例如,将validation规则定义为JSON格式的数据,并通过暴露数据的相同API中的端点公开它们。 现在,validation规则是公开的,任何其他服务都可以使用validation规则来validation数据,这些数据库可以parsing规则并接受/拒绝提交的数据(即从表单)。
- 如果元素由指令生成,则ng-click不起作用
- 用browserify捆绑js文件
- “npm install ”不会更新package.json
- dynamic页面标题使用MEAN堆栈 – Jade和Angular
- JS构build工具没有节点
- 使用Grunt和Node.js构buildAngularJS UI-Grid时遇到困难
- AngularJS和NodeJS中的视图模板引擎之间的概念区别是什么?
- MeanIO的swig模板引擎不呈现angular度ng模型数据
- Fullcalendar Angular / Node.JS http请求:TypeError:将循环结构转换为JSON(在Object.stringify处)