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