SpringMVC 處理模型數據 - MAP 與 SessionAttributes註解
SpringMVC 在內部使用了一個 org.springframework.ui.Model接口存儲模型數據。
在方法中加入 Map 或者 Model 類型的參數
@RequestMapping("/testSessionAttributes")
public String testSessionAttributes(Map<String,Object> map){
Address address = new Address("安徽","滁州");
User user = new User("testName","123456",15,address);
map.put("user",user);
map.put("address",address);
return SUCCESS;
}
success 頁面
<body>
<h4>Sucess Page</h4>
<br><br>
request user : ${requestScope.user}
<br><br>
session user : ${sessionScope.user}
<br><br>
request address : ${requestScope.address}
<br><br>
session address : ${sessionScope.address}
</body>
測試結果:
可以發現數據只傳入 request 中,那可不可以將數據放入 session 裏呢?
若要在多個請求之間共用某個模型屬性數據,可以在類上添加 SessionAttributes 註解,可以將模型中對應的屬性暫存到HttpSession中。
示例:
//只能放在類上,不能放在方法上
@SessionAttributes(value = {"user"},types = {Address.class})
@RequestMapping("/springmvc")
@Controller
public class HelloWorld {
@SessionAttributes(value = {“user1”,“user2”}) 可以獲取多個鍵的值
@SessionAttributes(types = {User.class}) 將模型中所有類型爲 User.class 的屬性放到 session 中
測試結果: