Spring MVC:将控制器+动作名称传递给视图的最佳方法是什么?
问题内容:
我想让视图知道调用哪个控制器和执行什么操作来生成它。实际上,我想在视图中执行以下操作:
<script>
var controller = "${controllerName}";
var controllerAction = "${controllerAction}";
</script>
并且,在后来包含的.js中,
<script src="/public/script.js"></script>
…在此.js中,我想访问两个变量:
if(controller == "UserController" && controllerAction == "Edit")
{
// ...
}
else
{
// ...
}
我的问题:将那些控制器和动作名称自动传递给视图的最佳方法是什么?
我的控制器扩展了一个抽象的“
BaseController”,所以我猜那里是将这些变量添加到ModelAttribute的最佳位置。我希望具体控制器对要添加的那些变量不做任何事情。但是父控制器如何知道子具体控制器的名称和操作的名称?
我可以在BaseController中检查StackTrace,但我真的不喜欢这种解决方案…
您有更好的建议解决方案吗?
问题答案:
为什么不能仅从您的URL中获取此信息?通常,URL映射到Spring中的控制器和动作。在javascript中,为什么不只是解析URL以获得此信息?如果问题是操作因帖子,获取或标题信息而不同,则可以将其作为参数附加在url中。