struts 2中的action-validation.xml

时间:2009-02-05 11:23:35

标签: validation struts2

我已经使用struts 2启动了一个Web应用程序.Apache tomcat 6.0是我的Web服务器。 我很清楚,我们可以使用action-validation.xml验证数据,因为我的login-validation.xml是 -

<validators> <field name="username"> <field-validator type="requiredstring"> <message>Login name is required</message> </field-validator> </field> </validators>

但它仅适用于预定义类型,如requiredstring,int,email等。如果我希望该用户名必须包含一个字符,例如'*',那么我们如何在struts 2中实现这种类型的验证。

并告诉我上面解释的是服务器端验证或客户端验证。

2 个答案:

答案 0 :(得分:1)

对于您的情况,我认为正则表达式验证符适用于您的问题:

<validators> 

   <field name="username"> 
    <field-validator type="requiredstring"> 
    <message>Login name is required</message> 
    </field-validator> 

        <field-validator type="regex">
           <param name="expression"><![CDATA[(.*\*.*)]]></param>
       <message>Login name must contain a *</message> 
      </field-validator>
    </field>

</validators>

如果内置验证器无法满足您的要求,您也可以编写自定义验证器。

答案 1 :(得分:0)

对于用户名,有几种方法可以接近它。

您可以使用fieldexpression内置验证程序并为其指定正则表达式以匹配所需的用户名字符。

您可以在操作中验证传入的用户名,如果验证失败则添加字段错误。

以上是服务器端验证。对于像在用户名中需要特殊字符这样简单的事情,客户端JavaScript验证可能是最简单的。