struts的validation.xml为何只是正则表达不起作用

我的LoginAction extends Action,LoginForm extends ValidatorForm
现在在我的validation.xml中有一下一段验证
<formset>
<form name="LoginForm">
<field property="username" depends="required,maxlength,mask">
<arg0 key="LoginForm.username"/>
<arg1 name="maxlength" key="${var:maxlength}" resource="false"/>
<var>
<var-name>maxlength</var-name>
<var-value>2</var-value>
</var>
<var>
<var-name>mask</var-name>
<var-value>^[0-9a-zA-Z]*$</var-value>
</var>
</field>
</form>
</formset>
现在的问题是:此时,required,maxlength能起作用,而mask就是不起作用。
例如:你在页面上输入
空 ---〉 提示 username is required
'aaaaa'---> 提示 username 的长度不能超过2位
但是你如果输入'!~' ---->验证既然通过,或者说验证没有起到作用,不报错

说明:我几乎一模一样的代码在另外的project中能正确运行,没有任何问题

请教各位,谢谢

我的validation.xml内容如下


<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE form-validation PUBLIC
"-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.0//EN"
"http://jakarta.apache.org/commons/dtds/validator_1_0.dtd">

<form-validation>
<global>
<!-- Custom Validator -->
</global>

<formset>
<!-- Form for Validation example -->
<form name=
"LoginForm">
<field property=
"username"
depends=
"required,maxlength,mask">
<arg0 key=
"LoginForm.username"/>
<arg1 name=
"maxlength" key="${var:maxlength}" resource="false"/>
<var>
<var-name>maxlength</var-name>
<var-value>20</var-value>
</var>
<var>
<var-name>mask</var-name>
<var-value>^[0-9a-zA-Z]*$</var-value>
</var>
</field>
</form>
</formset>
</form-validation>