-1

需要了解@Autowired这段代码在做什么。我有点困惑scope=session?这是否意味着现在user可以在HttpSession? 如何从 中检索它HttpSession?如果我删除redirectAttrs.addFlashAttribute("user", user);,那么我在JSP页面中看不到用户?

用户类及其映射如下

<bean id="user" class="example.User" scope="session">
  <aop:scoped-proxy/>
</bean>

下面的控制器重定向到另一个控制器,它不包含任何内容,只包含到登录 page.jsp 的位置

@Autowired
@Qualifier("user")
private User user;

@RequestMapping(method=RequestMethod.POST)
public String post(@ModelAttribute User user, BindingResult result, SessionStatus status, final RedirectAttributes redirectAttrs) {
    logger.info("post");
    new UserValidator().validate(user, result);
    if (result.hasErrors()) {
        return "login";
    }
    else {
        status.setComplete();           
        logger.info("Email Id: " + user.getEmailId());          
        redirectAttrs.addFlashAttribute("user", user);          
        return "redirect:/landing.htm";
    }
}   
4

1 回答 1

2

范围会话意味着将保留用户对象,直到客户端会话被销毁。这并不意味着您在 HttpSession 对象中拥有它。@Autowired 注解用于自动连接用户 bean。它用于从应用程序上下文中获取 bean 并将其分配给 Java 类中的局部变量。

于 2012-12-19T06:39:49.590 回答