我的正则表达式验证不起作用,验证配置文件如下:
<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.2//EN" "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
<validators>
<field name="bean.nsr.nsrsbh">
<field-validator type="requiredstring">
<message>纳人识别号不能为空</message>
</field-validator>
<field-validator type="stringlength">
<param name="maxLength">20</param>
<message>纳人识别号长度不能超过20个字符</message>
</field-validator>
<field-validator type="regex">
<param name="expression"><![CDATA[^[0-9a-z_A-Z\u4e00-\u9fa5]+$]]></param>
<message>纳人识别号只能由英文字母、数字、中文和下划线组成</message>
        </field-validator>
</field>
<field name="bean.sssq">
  <field-validator type="required">
<message>所属时期不能为空</message>
  </field-validator>  
</field>
<field name="bean.xssr">
  <field-validator type="regex">
<param name="expression"><![CDATA[^[1-9]\\d*.\\d* ¦0.\\d*[1-9]\\d*$]]></param>
<message>销售收入只能是非负数字</message>
      </field-validator>  
  <field-validator type="required">
<message>销售收入不能为空</message>
  </field-validator>       
</field>
<field name="bean.cpcl">
  <field-validator type="required">
<message>产品产量不能为空</message>
  </field-validator>
  <field-validator type="regex">
<param name="expression"><![CDATA[^\d+(\.\d+)?$]]></param>
<message>产品产量只能是非负数字</message>
      </field-validator>
      <field-validator type="double">
<message>产品产量必需是数字</message>
  </field-validator>
</field>
<field name="bean.cpxl">
  <field-validator type="required">
<message>产品销量不能为空</message>
  </field-validator>
  <field-validator type="regex">
<param name="expression"><![CDATA[^\d+(\.\d+)?$]]></param>
<message>产品销量只能是非负数字</message>
      </field-validator>
</field>
<field name="bean.cp.cp_dm">
  <field-validator type="requiredstring">
<message>产品名称没有选择</message>
  </field-validator>
</field>
</validators>
现在是必须字段的required验证起作用。我是想使用正则表达式的字段要求输入的只能是非负浮点数。可是我输入字符类型的数据时,提示是:invalid field value for field "bean.xssr".;销售收入不能为空。
当输入个负数时,就能通验过验证了。
我类里面定义xssr字段是BigDecimal类型。