Мы пытаемся перенести фреймворк Struts с версии 2.3 на 2.5. После того, как мы заменили jar на последнюю версию в lib (asm- , common- , struts- *), приложение работает, как и ожидалось, но проверки Struts не работают. Когда мы попытались debug
, классы валидатора java не вызывались, но в валидации все кажется правильным. xml, ClaimAction-savePubOnline-validation. xml, UrlValidaor. java
и мы не получаем никакой ошибки также в консоли.
validation.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE validators PUBLIC "-//Apache Struts//XWork Validator 1.0.3//EN"
"http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd">
<validators>
<validator name="urlForPrs" class="com.xyz.common.validators.UrlValidator"/>
</validators>
ClaimAction-savePubOnline-validation
<!DOCTYPE validators PUBLIC "-//Apache Struts//XWork Validator 1.0.3//EN"
"http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd">
<validators>
<field name="cpeClaimPubOnlineTO.url">
<field-validator type="urlForPrs">
<message key="err.msg.claim.url.invalid" />
</field-validator>
</field>
</validators>
public class UrlValidator extends FieldValidatorSupport {
@Override
public void validate(Object object) throws ValidationException {
String fieldName = getFieldName();
if(StringUtil.skipValidate(fieldName)) {
return;
}
Object value = this.getFieldValue(fieldName, object);
if (value == null) {
return;
} else if (value instanceof String) {
String s_value = (String) value;
if ("".equals(s_value)) {
return;
} else {
if (!s_value.matches(CommonConstants.URL_REGEX)) {
this.addFieldError(fieldName, object);
}
}
}
}
}