0

我有一个 ssn 字段(表示为 Action 类中的字符串),用户在其中输入以下格式 123-23-2233 的内容。Struts2 抛出错误。我不知道它在哪里配置为将其作为错误抛出。我该如何阻止这个?

我在 validate() 方法中有自己的验证,就像这样

if(StringUtility.isBlank(person.getSsn()) || !validateRegex(SSN_REGEX,person.getSsn().trim())){
   this.addFieldError("person.ssn","SSN is required");
}
4

1 回答 1

0

在您的验证方法运行之前,转换错误将被添加到字段错误映射中。因此,一旦您使用 validate 方法,就有一种非常简单的方法可以删除它们。只需在添加您自己的错误之前从地图中删除错误。

下面的示例代码;

if(yourCondition){
   // Check whether this field has existing errors and remove them.
   List<String> existingErrors = getFieldErrors().get("person.ssn");
   if(existingErrors != null){
       existingErrors.clear();
   }       
   // Add your own error.
   addFieldError("person.ssn","SSN is required");
}

同样,如果您想清除所有字段上的默认错误消息,您可以清除整个字段错误映射。

我希望这有帮助。

于 2015-11-05T11:46:45.440 回答