Привязка Spring MVC не может получить доступ к картографическим данным в тимиле - PullRequest
0 голосов
/ 23 сентября 2019

Я новичок в Java и пытался проверить тимелист в Springboot.с помощью кода, подобного первому контроллеру, я могу получить доступ к данным на карте через тимилиф

, но не могу получить доступ к данным на карте с помощью второго контроллера.почему объявление карты как 2-й метод не может работать?Кто-нибудь может мне помочь?спасибо

public class ViewController {
public String index(Map<String, Object> map) {
    map.put("hello","Bonjour");
    map.put("Users", Arrays.asList("Ken","Yu","JY"));       
    return "index";
}

}

public class ViewController {
public String index() {
    Map<String, Object> map=new HashMap<String, Object>();
    map.put("hello","Bonjour");
    map.put("Users", Arrays.asList("Ken","Yu","JY"));   
    return "index";
}
}

1 Ответ

0 голосов
/ 25 сентября 2019

Springboot следует архитектуре Model View Controller (MVC).Проще говоря, модели используются для предоставления атрибутов представлению, которое будет отображаться. Здесь вы используете лист тимьяна как средство визуализации представления, в то время как модель подается в шаблон листа тимьяна. Модели, ModelMap и ModelAndView используются для определения модели.в приложении Spring MVC. Загрузка Spring автоматически связывает вид и модель вместе.

Таким образом, метод-обработчик springboot @RequestMapping ожидает аргумент метода для модели:

java.util.Map / org.springframework.ui.Model / org.springframework.ui.ModelMap для обогащения неявной модели, доступной для веб-представления.

Doc

Таким образом, если вы предоставляете карту в качестве параметра метода, она автоматически связывает представление. Во втором случае это не происходит автоматически. По этой причине второй метод не работает. Пример с использованием ModelAndView:

@GetMapping("/goToIndexPage")
public ModelAndView methodWithModelAndViewReturn() {
    ModelAndView modelAndView = new ModelAndView("index");
    modelAndView.addObject("message", "Hello");
    return modelAndView;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...