我需要根据 http 会话属性将 @RequestMapping 映射到两个不同的控制器方法。
我看到 @RequestMapping 基于值、方法、参数和标题进行匹配。有没有办法根据会话属性进行映射?
如果我使用参数,我需要强制客户端发送请求参数,例如:aVersion=1 或 aVersion=2。
如果有任何示例可以覆盖@RequestMapping?你能指点我吗。
我需要根据 http 会话属性将 @RequestMapping 映射到两个不同的控制器方法。
我看到 @RequestMapping 基于值、方法、参数和标题进行匹配。有没有办法根据会话属性进行映射?
如果我使用参数,我需要强制客户端发送请求参数,例如:aVersion=1 或 aVersion=2。
如果有任何示例可以覆盖@RequestMapping?你能指点我吗。
是和不是。您可以将HttpSession
参数添加到控制器中的方法。来自Spring MVC 文档:
会话对象(Servlet API):HttpSession 类型。这种类型的参数强制存在相应的会话。因此,这样的论点永远不会为空。
但是,您必须手动进行会话属性检查 afaik:
@RequestMapping("/some_url")
void someMethod(HttpSession session) {
Object firstAttr = session.getAttribute("firstAttribute");
if (firstAttr != null) {
doSomethingWithFirstAttribute(firstAttr);
}
Object secondAttr = session.getAttribute("secondAttribute");
if (secondAttr != null) {
doSomethingWithSecondAttribute(secondAttr);
}
}