Java spring mvc:don';登录后不重定向-需要两个模型吗?
我编写了一个wee登录控制器。它有一个onSubmit方法,用于登录用户。如果登录成功,我想在不重定向的情况下显示首页。头版需要其他模型的内容。因为我的Java spring mvc:don';登录后不重定向-需要两个模型吗?,java,model-view-controller,spring,modelandview,Java,Model View Controller,Spring,Modelandview,我编写了一个wee登录控制器。它有一个onSubmit方法,用于登录用户。如果登录成功,我想在不重定向的情况下显示首页。头版需要其他模型的内容。因为我的LoginController已经有一个LoginModel了,所以它不能也有信息模型 有什么方法可以获取信息模型上的指针吗?或者调用以获取信息控制器的模型和视图?该控制器提供了一个handleRequest方法 我认为这是一个更基本的问题,但如果您需要代码来回答,我会提供它。我不确定是否正确理解您的问题,但是 a、 )您可以在ModelAndV
LoginController
已经有一个LoginModel
了,所以它不能也有信息模型
有什么方法可以获取信息模型上的指针吗?或者调用以获取信息控制器的模型和视图
?该控制器提供了一个handleRequest
方法
我认为这是一个更基本的问题,但如果您需要代码来回答,我会提供它。我不确定是否正确理解您的问题,但是
a、 )您可以在ModelAndView对象上添加多个模型。使用:
modelAndView.addObject("informationModel", informationModelObject);
b、 )如果成功登录,请将视图设置为您的首页视图:
modelAndView.setView("frontPageView");
要在LoginController上访问InformationController,您可以自动连接它=)
frontPageView将解析为frontPageView.jsp,但随后会显示一个空页面,因为它无法从InformationController访问InformationModel。我不得不从LoginController.doSumbit方法调用InformationController.handleRequest。InformationController为首页生成信息。明白我的意思吗?我想应该是这样的。您将需要调用InformationController的HandlerRequest,因为它可能是您的应用程序中唯一可以为您生成informationModel的部分。好的,但是我如何才能找到InformationController?一些服务器内部转发?谢谢,我发现另一种方法是使用forward:main.app进行successView。这会触发一些服务器实习生重定向,而不会干扰客户端。但是你的解决方案看起来也很不错。哪一个更好?更多的弹簧符合?你可以检查这个问题。
@Autowired
InformationController informationController;
@RequestMapping( ... ) // assuming you define it here
public ModelAndView onSubmit(... ) {
// .. code here
if (loginsuccess) {
InformationModel informationModelObject = informationController.handleRequest(...);
modelAndView.addObject("informationModel", informationModelObject);
modelAndView.setView("frontPageView");
}
else {
modelAndView.setView("loginFailView");
}
return modelAndView;
}