установка setViewName на одну и ту же страницу JSP на разных контроллерах в Spring - PullRequest
0 голосов
/ 01 мая 2018

У меня есть страница профиля, где я получаю значения от разных контроллеров.

Когда я использую mv.setViewName("User_Profile") в любом из контроллеров, я получаю значения только от этого контроллера на странице JSP.

Значения всех других контроллеров не отображаются при доступе к странице с любого из контроллеров.

Как сделать так, чтобы все значения со всех контроллеров отображались на странице?

1 Ответ

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

Вы можете создать Spring MVC ControllerAdvice для установки общих свойств:

https://docs.spring.io/spring/docs/current/spring-framework-reference/web.html#mvc-ann-controller-advice

Как правило, методы @ExceptionHandler, @InitBinder и @ModelAttribute применять в классе @Controller (или иерархии классов) они объявлено в. Если вы хотите, чтобы такие методы применялись более глобально, через контроллеры, вы можете объявить их в классе, отмеченном @ControllerAdvice или @ RestControllerAdvice.

Таким образом, вы создаете методы, помеченные @ModelAttribute для установки общих свойств в вашем совете.

Вы можете связать ControllerAdvice с определенными контроллерами:

    @ControllerAdvice(assignableTypes = {ProfileController1.class, ProfileController2.class})
    public class ProfileControllerAdvice{

    @ModelAttribute("someProperty")
    public String getSomeProperty(){
       return "I am can be accessed using ${someProperty} in the JSP.
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...