struts 2中的action-validation.xml

struts 2中的action-validation.xml,validation,struts2,Validation,Struts2,我已经使用struts 2启动了一个web应用程序。ApacheTomcat6.0是我的web服务器。 我很清楚,我们可以使用action-validation.xml验证数据,就像我的login-validation.xml是—— 需要登录名 但它只适用于预定义类型,如requiredstring、int、email等。如果我希望用户名必须有一个字符,例如“*”,那么我们如何在struts 2中实现这种类型的验证呢 另外,请告诉我上面解释的是服务器端验证或客户端验证。对于用户名,有几种方法

我已经使用struts 2启动了一个web应用程序。ApacheTomcat6.0是我的web服务器。 我很清楚,我们可以使用action-validation.xml验证数据,就像我的login-validation.xml是——


需要登录名

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


另外,请告诉我上面解释的是服务器端验证或客户端验证。

对于用户名,有几种方法可以实现

您可以使用内置验证器,并为其提供一个正则表达式以匹配所需的用户名字符

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


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

对于您的情况,我认为regex validor可以解决您的问题:

<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>

需要登录名
登录名必须包含*
如果内置验证器不能满足您的需求,您也可以编写定制的验证器