При возврате ModelAndView весной, URL не изменяется - PullRequest
0 голосов
/ 22 марта 2020

Я пытаюсь понять, почему после возврата нового ModelAndView (), URL не изменяется. Вот мой код:

<div class="container" id="container">
   <button id="test1" onclick="showSchedule(this.id)">Test button</button>
</div>
<script>
  function showSchedule(buttonName) {
    $.ajax({
      url: "/appointment/employee/" + buttonName,
      type: "GET",
      dataType: 'html',
      success: function (response) {
        $("#container").html(response);
      },
      error: function (response) {
        console.log(response);
      }
    });
  }

Вот контроллер, который перехватывает этот запрос:

@RequestMapping("/appointment")
public class AppointmentController {

  @GetMapping(value = "/employee/{scheduleName}")
  public @ResponseBody
  ModelAndView showSchedule(@PathVariable("scheduleName") String scheduleName,
                            Model model,
                            HttpServletRequest request) throws IOException {
    model.addAttribute("scheduleName", scheduleName);
    ModelAndView mav = new ModelAndView(new MappingJackson2JsonView());
    String url = request.getRequestURL().toString();
    mav.addObject("url", url);
    mav.addObject("view", "renderAppointments");
    mav.setViewName("renderAppointments");
    return mav;
  }
}

В этом случае jsp отображается, но URL не изменяется. Если я изменяю dataType на json, я получаю всю необходимую информацию и могу изменить URL, но тогда jsp не отображается

1 Ответ

1 голос
/ 23 марта 2020

Вы делаете ajax звонок ($. ajax).

Это не изменит ваш URL, так как это асинхронный вызов Javascript - так, ожидаемое поведение.

Я не знаю точно, что вы пытаетесь сделать здесь, но это будет работать, без всего вашего Javascript.

<form action="/appointment/employee/test1">
    <input type="submit" value="Test button" />
</form>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...