Я использую spring-boot на базовом веб-сайте. У меня есть страница home.html
, которая возвращается HomeController
, и другие страницы, которые загружаются как страница iframe
на home.html
через навигацию на домашней странице. Я хочу, чтобы страница personal.html
загружалась как страница iframe
из home.html
только после успешного входа со страницы login.html
. Снова login.html
страница загружается как iframe
в home.html
.
Тайна в том, что: после проверки подлинности из моей функции обработчика запросов (запрос отправлен login.html
), когда я возвращаю «personal.html» как представление в ModelAndView
объекте, он автоматически помещается в iframe
из home.html
. Я ожидал, что «personal.html» заменит home.html
. Хотя это то, что я хотел, я не понимал, почему это произошло.
Следующее является частью home.html
.
<body>
<div>
<ul>
<li> <a href="#home" id="id_home" onClick='changePage(event);' class="active">Home</a></li>
<li><a href="#persoal" id="id_personal" onClick='changePage(event);'>Personal</a></li>
</ul>
</div>
<div class="login">
<a href="#login" id="id_login" onClick='setNewPage(event);'>login</a>
</div>
<div>
<iframe id="anchor" src = "${iframe_source}"></iframe>
</div>
</body>
См. Фрагмент кода ниже моей функции-обработчика запросов (рабочий код, как? - не должен personal.html
заменить home.html
?):
@RequestMapping(value = "/html/login",method = RequestMethod.POST)
public ModelAndView getPersonalPage(@RequestParam("userName") String username,
@RequestParam("password") String password)
{
if(userService.authenticateUser(username, password) == true)
{
ModelAndView modelView = new ModelAndView();
modelView.setViewName("personal");
modelView.addObject("user", username);
return modelView;
}
else
{
return null;
}
}
На самом деле, я думал, что это будет работать следующим кодом (но не работает, почему? - Не следует загружать personal.html
как iframe
в home.html
?).
@RequestMapping(value = "/html/login",method = RequestMethod.POST)
public ModelAndView getPersonalPage(@RequestParam("userName") String username,
@RequestParam("password") String password)
{
if(userService.authenticateUser(username, password) == true)
{
ModelAndView modelView = new ModelAndView();
modelView.setViewName("home");
modelView.addObject("user", username);
modelView.addObject("iframe_src",
"personal.html");
return modelView;
}
else
{
return null;
}
}