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