Повторное использование класса данных формы с другим шаблоном проверки в контроллере Spring - PullRequest
0 голосов
/ 11 мая 2018

Я хотел бы использовать один и тот же класс данных формы с двумя различными контроллерами, но с другим шаблоном проверки.

У меня есть класс и контроллер:

public class Query {
    @Pattern(regexp = "") //different pattern for askHim and askMe
    private String name;
}

@Controller
public class TestController {

    @PostMapping(value = "/api/askHim.html")
    public void askHim(@Valid @RequestBody Query q) {
        //do something
    }

    @PostMapping(value = "/api/askMe.html")
    public void askMe(@Valid @RequestBody Query q) {
        //do something
    }
}

Как использовать другой шаблон с использованиемодин и тот же класс для метода askHim и метода askMe?

1 Ответ

0 голосов
/ 11 мая 2018

Я уже знаю.Нам нужно использовать группы при проверке и заменить @Valid на @ Validated.

public interface AskMe { }
public interface AskHim { }

public class Query {
    @Pattern(regexp = "name", groups = { AskMe.class })
    @Pattern(regexp = "age", groups = { AskHim.class })
    private String name;
}

@Controller
public class TestController {

    @PostMapping(value = "/api/askHim.html")
    public void askHim(@Validated({ AskHim.class }) @RequestBody Query q) {
        //do something
    }

    @PostMapping(value = "/api/askMe.html")
    public void askMe(@Validated({ AskMe.class }) @RequestBody Query q) {
        //do something
    }
}
...