Struts 2:将不同的XML验证文件应用于一个Action Methods

时间:2014-05-21 10:02:55

标签: validation struts2 struts-validation

我是Struts 2 Framework的新手,我使用了XML验证文件来验证表单的字段。我的问题是:

  • 如何将不同的XML验证文件应用于一个操作的方法?

  • 我还希望将相同的XML验证文件用于多种操作方法。

1 个答案:

答案 0 :(得分:0)

  
      
  • 问:如何将不同的XML验证文件应用于一个操作的方法?
  •   

您可以使用Action Alias命名约定(而不是默认的Action Class 1)为Action的每个方法创建XML验证文件。

来自the docs

  

定义验证规则

     

可以指定验证规则:

     
      
  1. 每个操作类:在名为 ActionName-validation.xml
  2. 的文件中   
  3. 每个操作别名:在名为 ActionName-alias-validation.xml
  4. 的文件中   
  5. Action类实现的继承层次结构和接口:XWork搜索操作的继承树以查找默认值   Action和接口的父类的验证   实施
  6.         

    [...]

         

    在此上下文中,“Action Alias”指的是Struts配置中给出的操作名称。通常,name属性与方法名称匹配,但它们也可能不同。


  
      
  • 问:我还希望将相同的XML验证文件用于多种操作方法。
  •   

您可以通过多种方式继续进行。请记住,一个Action应该执行“一个动作”左右,并且您不应该在一个Action中有太多方法,请注意:

  1. 如果您要验证自定义对象(例如,它们的集合)而不是Action中的多个单个字段,则可以使用the Visitor Validator。它将要求您将一个带有ObjectClassName-validation.xml的XML文件放在对象文件夹中(而不是在Action文件夹中),并且每个Action(或别名)都会重用它来验证它。

  2. 否则你可能会破坏层次结构,玩动作扩展并在每个级别上添加一个方法,最后创建多个XML验证文件,但它会有点过分而且从根本上是错误的(最好是创建同一级别的多个单方法动作。)

  3. 然后坚持Alias方式,访客方式,并尝试保持你的行动小......