我已经使用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中实现这种类型的验证。
并告诉我上面解释的是服务器端验证或客户端验证。
答案 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验证可能是最简单的。