Валидатор Struts. xml не вызывается после миграции с версии 2.3 или 2.5 - PullRequest
0 голосов
/ 27 апреля 2020

Мы пытаемся перенести фреймворк 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);
                }
            }
        }
    }
}


Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...