我是Struts 2 Framework的新手,我使用了XML验证文件来验证表单的字段。我的问题是:
如何将不同的XML验证文件应用于一个操作的方法?
我还希望将相同的XML验证文件用于多种操作方法。
答案 0 :(得分:0)
- 问:如何将不同的XML验证文件应用于一个操作的方法?
您可以使用Action Alias命名约定(而不是默认的Action Class 1)为Action的每个方法创建XML验证文件。
来自the docs:
定义验证规则
可以指定验证规则:
- 每个操作类:在名为
的文件中ActionName-validation.xml
- 每个操作别名:在名为
的文件中ActionName-alias-validation.xml
- Action类实现的继承层次结构和接口:XWork搜索操作的继承树以查找默认值 Action和接口的父类的验证 实施
醇>[...]
在此上下文中,“Action Alias”指的是Struts配置中给出的操作名称。通常,name属性与方法名称匹配,但它们也可能不同。
- 问:我还希望将相同的XML验证文件用于多种操作方法。
您可以通过多种方式继续进行。请记住,一个Action应该执行“一个动作”左右,并且您不应该在一个Action中有太多方法,请注意:
如果您要验证自定义对象(例如,它们的集合)而不是Action中的多个单个字段,则可以使用the Visitor Validator
。它将要求您将一个带有ObjectClassName-validation.xml
的XML文件放在对象文件夹中(而不是在Action文件夹中),并且每个Action(或别名)都会重用它来验证它。
否则你可能会破坏层次结构,玩动作扩展并在每个级别上添加一个方法,最后创建多个XML验证文件,但它会有点过分而且从根本上是错误的(最好是创建同一级别的多个单方法动作。)
然后坚持Alias方式,访客方式,并尝试保持你的行动小......