【发布时间】:2020-03-22 13:07:06
【问题描述】:
我试图理解为什么在返回 new 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 不会呈现
【问题讨论】:
标签: jquery ajax spring spring-boot jsp