我们的Struts应用程序复制了许多表单的验证检查:(1)jQuery / JS中的客户端,以及(2)Java中的服务器端。
我问我的主角为什么,他说"你永远不能相信客户端。"但另一方面,为方便起见,他也希望在浏览器中提供JS / jQuery验证。
有很多冗余代码。什么是双方可重复验证的正确策略?这些天人们手动复制客户端/服务器端验证吗?
答案 0 :(得分:3)
把它想象成你家的门:有了它,没有正确钥匙的人就无法进入。没有它,任何人都可以进入。
把它想象成建筑物外面带有对讲机的门。有了它,如果你不回答对讲机,人们会立即离开。没有它,人们需要进入建筑物,爬楼梯,敲门......只是发现你不在家。
您需要以应用服务器端验证,对于Struts2,可以是validate()
或validateXXX()
方法,也可以是XML Validation
,或使用注释(内置Struts2 Annotations每个操作,或{@ 3}} @UmeshAwasthi per-entity)。
如果您想重复使用 服务器端验证作为客户端验证,您可以使用jsr303-validator-plugin,如上所述Struts2-jQuery-plugin。
BTW,HTML5(带有后备)和客户端的基本jQuery验证应该足够了。
将实际工作投入到服务器端,如果您仍有时间和预算,请加强客户端。