2011-09-23 179 views
1

我不知道如何在struts config xml中没有指定Validate = true的情况下执行struts 2验证。你能告诉我使用验证框架的Struts 2验证流程吗?Struts 2需要澄清

+1

我正在使用struts.xml,通过定义一个扩展了“struts-default”的包来指定它。你需要知道拦截器是如何工作的,网上写了很多,最好的开始是在struts2-core-xxxjar中打开struts-default.xml,你会看到“struts-default “是被定义的,并且有很多拦截器堆栈,并且非常靠近”defaultStack“所在的底部,并且被设置为默认值。搜索拦截器的名称将使您了解已完成的工作,您可以利用这些工作。 – Quaternion

回答

1

通过组合"validation" and "workflow" interceptors进行验证。 Struts 2配置文件中没有“验证”设置,因为没有必要。

+0

如果你稍微解释一下,我将不胜感激。我是struts 2的新手,我熟悉struts 1.2。 – user961532

+0

[S2简而言之](http://struts.apache.org/2.2.3.1/docs/nutshell.html)。 –

0

Struts核心具有验证框架,可帮助应用程序在执行操作方法之前运行规则以执行验证。

Struts 2 validation flow

动作类作品作为域数据,它看起来在其操作映射文件的属性和它在theFileName-validation.xml中搜索字段验证和所有验证工作,按照在验证定义的字段.XML。如果数据不匹配,它会从validation.xml中选择消息并将其显示给用户。

样品员工-validation.xml中:

<validators> 
    <field name="name"> 
     <field-validator type="required"> 
     <message> 
      The name is required. 
     </message> 
     </field-validator> 
    </field> 

    <field name="age"> 
    <field-validator type="int"> 
     <param name="min">29</param> 
     <param name="max">64</param> 
     <message> 
      Age must be in between 28 and 65 
     </message> 
     </field-validator> 
    </field> 
</validators> 

这是员工模型和请求样本验证文件的属性名字和年龄将被验证。如果名称字段为空,验证会在名称输入框上方显示错误消息为“名称是必需的”。如果输入的年龄超出29-64的限制,验证将显示错误为“年龄必须介于28到65“以上的年龄输入框。