【发布时间】:2012-10-22 22:55:00
【问题描述】:
在struts2中,引入验证基本上有两种方法:你都可以这样做
- 以编程方式,或
- 以声明方式。
程序化验证主要涉及在您的操作类上实现接口Validatable,为此需要充实方法void validate();。如果要将验证问题报告给用户,则存在更复杂的界面ValidationAware。
在声明性验证中,每个要验证的操作都有自己的验证文件,称为myactionname-validation.xml,其中使用 XML 描述语言声明验证器。
在我工作的公司,我们正在使用程序化验证原则,使用小型验证框架(内部编写)来帮助重用常见的验证器模式。然而,我刚刚读过一本 struts2 的书,声明式验证是首选的方法。这本书提供了很多关于如何设置声明式验证的说明,但它几乎没有涉及为什么声明式方式更可取的主题。
我看到了一些普遍的论点,它们有时支持声明式 XML 样式的配置,但我看不出它们在这里适用:更改此配置(即验证)与由操作处理的模型和用于修改模型值的 GUI。这不是需要在不重新编译的情况下“即时”配置的东西。
在 struts2 中使用声明式样式验证有哪些参数?
是否值得深入研究另一种 XML 标记方言并为处理单独的validation.xml 文件而烦恼?以编程方式执行它不是更容易,而且可能更易于维护,因为 Java 源代码(或者更确切地说是您选择的 IDE)将为您提供重构工具、结构化搜索等,而 XML 配置支持通常充其量是可以容忍的?
【问题讨论】:
-
对于它的价值,我更喜欢程序化方法,并且我已经使用该框架大约五年了。
标签: java xml validation struts2 declarative