2011-05-30 58 views
0

我知道下面的「pet」對象通過使用@SessionAttributes存儲到會話中,但是我可以使用session.getAttribute嗎? (如..寵物寵物=(寵物)session.getAttribute(「寵物」))。我不知道爲什麼我不需要「會話密鑰」。 (我們來定義鍵使用session.setAttribute(「ID」,ID)時)如何在使用@SessionAttributes時使用「session.getAttribute」

@Controller 
    @RequestMapping("/editPet.do") 
    @SessionAttributes("pet") 
    public class EditPetFormController { 

     @Autowired 
     private final Clinic clinic; 

     @RequestMapping(method = RequestMethod.GET) 
     public String setupForm(@RequestParam("petId") int petId, ModelMap model) { 
      Pet pet = this.clinic.loadPet(petId); 
      model.addAttribute("pet", pet); 
      return "petForm"; 
     } 

回答

3

經由@SessionAttributes配置會話屬性意在被訪問時以模型屬性,而不是通過直接調用的方法Session,因此他們的名字是從模型屬性名稱自動生成的。

默認情況下,會話屬性名稱與模型屬性名稱相同,因此您可以將其作爲session.getAttribute("pet")(請參閱DefaultSessionAttributeStore)進行訪問。

+0

太棒了!我完全理解! – zono 2011-05-30 14:59:11

相關問題