1

我需要根据 http 会话属性将 @RequestMapping 映射到两个不同的控制器方法。

我看到 @RequestMapping 基于值、方法、参数和标题进行匹配。有没有办法根据会话属性进行映射?

如果我使用参数,我需要强制客户端发送请求参数,例如:aVersion=1 或 aVersion=2。

如果有任何示例可以覆盖@RequestMapping?你能指点我吗。

4

1 回答 1

1

是和不是。您可以将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);
    }
} 
于 2012-04-28T18:41:51.497 回答