图像控制器X和控制器Y.(X和Y)都扩展了控制器A.控制器A有一些共同的逻辑(检查用户是否被记录等)。
我可以在控制器A(在方法beforeInterceptor中)设置一些数据来查看(因此这些数据可以在控制器X和Y的所有方法中访问)。 (例如,在beforeInterceptor中的控制器A中获取MENU的数据 - 在控制器X / Y中的每个方法的所有视图中都使用MENU)
或者应该以其他方式解决这样的问题?
谢谢你的嗨
答案 0 :(得分:1)
首先出于安全目的,我会依赖Spring Security Plugin而不是您的手动安全性。随着应用程序的增长,它会让您的生活变得更轻松。它功能强大,安全且实现起来非常简单。
有许多方法可以从server
中获取菜单数据。您可以使用拦截器或过滤器执行所述操作,并将其注入每个视图/响应中,或将其存储/缓存在session
中。我认为session
更有效率,因为您不必每次都返回菜单项。即使您不想使用会话来确保缓存数据,如果它们是静态的。
如果要将这些数据保存在控制器中,我会创建一个返回值的Private
方法。这可以防止它充当动作。更好的方法是使用cacheable方法提供服务并返回菜单项。然后,您可以通过其中一种方法将其传输到视图。