我在使用 Struts(2.2.3) 时遇到了非常令人不安的问题。这是我对 ActionName-validation.xml 的字段验证
<field name="txtRequestDateFrom">
<field-validator type="conversion">
<param name="repopulateField">false</param>
<message>${getText("E011", {"Date from"})}</message>
</field-validator>
</field>
我的动作类中没有 validate() 方法。我的动作课上有这个:
private Date txtRequestDateFrom;
{getter, setters}
当我在 txtRequestDateFrom 字段中输入字母时,我收到 3 条验证消息
<s:fielderror fieldName="txtRequestDateFrom"/>
它看起来像这样
Invalid field value for field "txtRequestDateFrom".
Invalid field value for field "txtRequestDateFrom".
Date from has an invalid value
我有我的自定义主题,我确信 SIMPLE 主题没有太多修改。我的拦截器堆栈与默认值堆栈几乎相同。
<interceptor-stack name="defaultStack">
<interceptor-ref name="security"/>
<interceptor-ref name="exception"/>
<interceptor-ref name="alias"/>
<interceptor-ref name="servletConfig"/>
<interceptor-ref name="i18n"/>
<interceptor-ref name="prepare"/>
<interceptor-ref name="chain"/>
<interceptor-ref name="debugging"/>
<interceptor-ref name="scopedModelDriven"/>
<interceptor-ref name="modelDriven"/>
<interceptor-ref name="fileUploadStack" />
<interceptor-ref name="fileUpload" >
<param name="maximumSize">4000000</param>
</interceptor-ref>
<interceptor-ref name="checkbox"/>
<interceptor-ref name="multiselect"/>
<interceptor-ref name="staticParams"/>
<interceptor-ref name="actionMappingParams"/>
<interceptor-ref name="params"/>
<interceptor-ref name="conversionError" />
<interceptor-ref name="validation">
<param name="excludeMethods">execute, complete ...</param>
</interceptor-ref>
<interceptor-ref name="workflow"/>
</interceptor-stack>
我发现可以通过从堆栈中删除 conversionError 拦截器来删除一个字段错误。但我认为这不会导致这个问题。Struts 应该能够显示仅由开发人员定义的错误,对吧?
请帮助我