struts2中的日期验证

时间:2009-07-04 02:53:46

标签: validation datetime struts2

我正在创建一个用户将在struts2应用程序中注册的表单。用户需要以特定格式输入日期。

由于我不打算使用datepicker ajax标记,因此我使用的文本字段的日期标记如下:

<s:date name="birthDate" id="bDateId" format="yyyy-MM-dd"/>  
<s:textfield name="birthDate" id="%{bDateId}" label="Birth Date (yyyy-MM-dd)"/>

底层用户实体有一个String字段来表示日期。所以我的问题是,是否有一种直接的方法来对日期字段的用户输入格式应用验证。 struts2提供的日期验证器只能用于检查日期范围,但不能用于检查特定格式。

有人会推荐一种方法来做到这一点,或者不介意指向一个自定义验证器的例子吗?

感谢您的建议 关心所有

2 个答案:

答案 0 :(得分:1)

您可以使用正则表达式验证器轻松验证这一点。类似的东西:

<field name="birthDate">
  <field-validator type="regex">
      <param name="expression">[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]</param>
      <message>The value must be in the format yyyy-MM-dd</message>
 </field-validator>

答案 1 :(得分:1)

您可以使用日期验证程序对此进行验证。类似的东西:

   <field name="fecha">

        <field-validator type="date">
            <param name="min">01/01/1900</param>
            <param name="max">01/01/9999</param>
            <message key="error.fecha.rango.invalido"/>
        </field-validator>       
    </field>