我将在Spring中设置我的安全支持,并在探索它所提供的功能。在设置我的登录URL和视图时,我需要为home和登录URL注册简单的控制器。具体来说,代码是:
@Override
public void addViewControllers(ViewControllerRegistry registry){
registry.addViewController("/").setViewName("home");
registry.addViewController("/login");
}
在registry.addViewController("/").setViewName("home");
行中,该行似乎只是为URL“ /”添加了控制器,而对该URL的GET仅使用视图“ home”进行呈现。
我说对了吗?主要问题是关于第registry.addViewController("/login");
行。在这里,我为“ / login” URL添加了控制器。
但是应用程序如何知道要使用哪个视图?当我尝试该应用程序时,它确实使用了我创建的“登录”视图。
答案 0 :(得分:0)
好吧,您处在正确的轨道上,但并不完全正确。如果您尚未登录并打开URL“ yourdomain.tld /”,您将被重定向到URL“ yourdomain.tld / home”,该URL通常可以是登录页面。 (第一行)。当然,您需要一个控制器来处理此请求并返回正确的JSP / JSF页面。
不需要您的第二行。诀窍在于,通过这样的配置,您可以将URL“ yourdoamin.tld /”与用于登录用户的其他页面一起使用。
要回答您的主要问题,您需要一个控制器来控制要使用的每个URL或部分URL。在此控制器内,您可以根据请求的URL选择视图。
示例:
@Controller
@RequestMapping(value="/info")
@Scope(value="session")
public class InfoController extends AbstractWebController {
@RequestMapping
public ModelAndView infoPage() {
ModelAndView mav = this.getModelAndView("info/infopage");
return mav;
}
}
此控制器负责所有以“ yourdomain.tld / info”开头的URL。如您所见,我只有URL“ yourdomain.tld / info”返回正确的视图。在此示例中,我返回“ infopage.jsp”。您可以添加代码以返回其他页面的不同视图。