0

我正在尝试验证用户的出生日期。我的jsp页面是这样的:

<s:form>
...
<s:date name="birthDate" var="formattedVal" />
<s:textfield value="%{#formattedVal}" key="birthDate" />
...
</s:form>

action-validation.xml的是这样的:

 <field name="birthDate">
    <field-validator type="required">
        <param name="trim">true</param>
        <message key="birthDate.required" />
    </field-validator>
    <field-validator type="date">
        <param name="min">01/01/1900</param>
        <param name="max">01/01/9999</param>
        <message />
    </field-validator>
 </field>

问题是当我在这个文本字段中输入错误的输入时,例如:“asñdlkfa”,struts2 认为用户没有输入任何内容,然后输入错误birthDate.required

有没有办法避免这种情况?

4

2 回答 2

1

没有任何内置的东西可以一次性完成验证并以我认为您希望它们处理的方式处理错误。同时,我不确定是否值得编写自定义验证器,尽管这样做真的很容易。

如果不编写验证器对您来说非常重要,那么您可以使用正则表达式验证器执行操作并在操作中处理转换,否则我可能需要几分钟来编写验证器。

于 2012-06-25T12:01:49.610 回答
0

使用 struts ajax 和 dojo 标签

* 导入标签库 <%@ taglib prefix="sj" uri="/struts-jquery-tags"%> <%@ taglib prefix="sd" uri="/struts-dojo-tags"%> * *根据您的要求<head> <sj:head /> <sd:head compressed="false" cache="false" /> </head> 在正文 <sj:datepicker name="date achat" label="Format (yyyy-MM-dd)" displayFormat="yyyy-MM-dd" maxDate="2012-06-25" /> <sd:datetimepicker name="date achat" label="Format2 (yyyy-MM-dd)" displayFormat="yyyy-MM-dd" startDate="2012-06-25"></sd:datetimepicker>指定日期之间放置 *

于 2012-06-25T12:03:55.977 回答