我有一个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");
}
答案 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");
}
同样,如果要清除所有字段上的默认错误消息,则可以清除整个字段错误映射。
我希望这会有所帮助。