Struts2 - 禁用转换错误

时间:2011-05-20 15:29:02

标签: validation struts2 struts-validation

我有一个ssn字段(在Action类中表示为String),用户在其中输入以下格式123-23-2233。 Struts2抛出一个错误。我不知道它配置的位置将它作为错误抛出。我怎么阻止这个?

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

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

1 个答案:

答案 0 :(得分:0)

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

以下示例代码;

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");
}

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

我希望这会有所帮助。