Struts2 Struts 2.5.12/2.5.13-Struts升级后验证停止工作

Struts2 Struts 2.5.12/2.5.13-Struts升级后验证停止工作,struts2,struts-validation,Struts2,Struts Validation,我已经将其中一个项目上的Struts从2.3.x升级到了2.5.12(也尝试了2.5.13),我发现在升级之后没有发生任何验证 我在JSP中有: <s:form action="details"> <s:textfield name="fullName" size="20" label="full.name" requiredLabel="true" /> <s:checkbox id="terms" name="terms" requiredLab

我已经将其中一个项目上的Struts从2.3.x升级到了2.5.12(也尝试了2.5.13),我发现在升级之后没有发生任何验证

我在JSP中有:

<s:form action="details">
    <s:textfield name="fullName" size="20" label="full.name" requiredLabel="true" />
    <s:checkbox id="terms" name="terms" requiredLabel="true" />
    <s:submit name="submit" id="submit" value="Submit" />
</s:form>
我已在我的action类中重写validate,如下所示:

@Override
public void validate() {
    super.validate();
    LOG.debug(getFieldErrors());
}
我尝试过调试,但在动作类的
validate
方法中没有看到任何字段错误


有人知道我升级后为什么会出现这个问题吗?谢谢

问题在于验证xml文件中使用的正则表达式。 我在验证xml中有一个正则表达式,如下所示:

<field-validator type="regex">
   <param name="expression"><![CDATA[^[0-9A-Za-z&\-./\s]*$]]></param> 
   <message key="fullname.invalid"/>
</field-validator>
不确定为什么其他验证不能使用错误的正则表达式,但在更改它之后,所有验证都正常工作


这可能会帮助有类似问题的人:)

在validate method of action类中看不到任何字段错误-这是什么意思?它会转到输入结果吗?您好@AleksandrM,我在action类中重写了
validate
方法,只是为了记录错误。在从jsp页面提交时,我看到控件用于验证方法,但没有添加字段错误。我已经更新了我的问题,添加了
validate
方法。感谢您的回复。如果您查看,您会发现validate方法紧跟在拦截器之后,如果它验证时没有错误,那么您预期会出现哪些字段错误?Hi@AleksandrM,我预期会出现一些字段错误(通过XML验证),因为我没有在屏幕上输入任何值。在您的回答中,您提到验证拦截器自己进行验证,并创建字段特定错误的列表。-我没有看到由validation interceptor创建的任何字段验证,尽管我已将validation interceptor包含在我的struts xml文件中。好:)别忘了接受你的答案,以帮助未来的访客。
<field-validator type="regex">
   <param name="expression"><![CDATA[^[0-9A-Za-z&\-./\s]*$]]></param> 
   <message key="fullname.invalid"/>
</field-validator>
<field-validator type="regex">
   <param name="regexExpression"><![CDATA[^[0-9A-Za-z&\-./\s]*$]]></param> 
   <message key="fullname.invalid"/>
</field-validator>