一个弹簧控制器可重复使用到不同的视图

问题描述:

我正在开发一个网站,您可以从几乎每个页面登录。登录操作与每个页面相同,但始终必须返回到已启动操作的页面。我的想法是使用相同的Spring控制器管理所有的登录请求(使其可重用),并依赖于调用它的页面,并转发给它。一个弹簧控制器可重复使用到不同的视图

我不知道是否有可能,或者是否有其他方式来完成我的要求,而不必在每个控制器上“复制”相同的操作。

对于每个页面,都会以包含返回页面URL的方式生成登录链接URL。然后,登录控制器将知道登录成功后重定向的位置。

例如上的mypage.html,登录链接将是http://server/login.do?returnURL=MyPage.html

你的控制器将被附连到login.do并在结束重定向到returnURL

+0

谢谢。那么如果需要调用不同的控制器呢?我的意思是,因为我要重定向到不同的页面,并且这些页面由不同的控制器上的数据库调用填充,我不想在登录控制器上复制此功能。所以我认为这可以通过转发到基于returnURL的适当控制器来解决......我不知道它是否是一种优雅的方式来继续... – user1260893 2012-03-15 10:27:14

+0

您的登录控制器将决定成功或失败后重定向的位置。对于这个决定,它将使用请求中收到的参数。 'returnURL'是做这样决定的一种参数,但是你可以传递你选择的其他参数。像'returnURL'这样的参数将由控制器生成,该控制器返回具有登录链接/ URL的页面。如果您担心重复添加'returnURL'的代码 - 那么有很多方法可以解决它。例如,将它放在一些实用程序类中。 – 2012-03-15 16:48:46