Как использовать EL для оценки длины массива в сообщении ограничения проверки компонента?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Как использовать EL для оценки длины массива в сообщении ограничения проверки компонента?

Сообщение Anonymous »

У меня есть ограничение, по которому я хочу использовать EL, чтобы настроить сообщение в соответствии с обстоятельствами. В зависимости от длины массива я хочу показать другое сообщение. Однако у меня возникли проблемы с получением длины этого массива.
Что я делаю не так?
import org.junit.jupiter.api.Test;
import javax.validation.*;
import java.lang.annotation.*;
import static org.assertj.core.api.Assertions.assertThat;

public class FooTest {
private final Validator validator = Validation.buildDefaultValidatorFactory().getValidator();

@Test
public void foo() {
var violations = validator.validate(new ObjectWithFoo());
assertThat(violations).extracting("message")
.containsExactly("Field value should be foo");
}

@Test
public void foos() {
var violations = validator.validate(new ObjectWithFoos());
assertThat(violations).extracting("message")
.containsExactly("Field value should be one of [foo, bar, baz]");
}

@Foo(foos = {"foo"})
private static class ObjectWithFoo{}

@Foo(foos = {"foo", "bar", "baz"})
private static class ObjectWithFoos{}

@Constraint(validatedBy = FooValidator.class)
@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
public @interface Foo{
Class[] groups() default {};
Class

Подробнее здесь: https://stackoverflow.com/questions/701 ... n-constrai
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»