-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 に答える