SpringMVC_9_ 處理模型資料(一)之ModelAndView、Map、@SessionAttributes
阿新 • • 發佈:2018-12-29
SpringMVC提供了以下幾種途徑輸出模型資料:
- ModelAndView:處理方法返回值型別為ModelAndView時,方法體即可通過該物件新增模型資料
- Map 及 Model:入參為org.springframework.ui.Model、org.springframework.ui.ModelMap或java.uti.Map時,處理方法返回時,Map中的資料會自動新增到模型中。
- @SessionAttributes:將模型中的某個屬性暫存到HttpSession中,以便多個請求之間可以共享這個屬性
- @ModelAttribute:方法入參標註該註解後,入參的物件就會放到資料模型中
ModelAndView
-
控制器處理方法的返回值如果為ModelAndView,則其既包含檢視資訊,也包含模型資料資訊。
演示例子:
1.在index.jsp中寫一個響應handler的< a>標籤
2.編寫這個handler方法
3.編寫SUCCESS.jsp,使其顯示modelAndView的time值
4.執行結果
在index.jsp中點選那個< a>標籤後
Map及Model
-
Spring MVC 在內部使用了一個org.springframework.ui.Model介面儲存模型資料
演示例子:
1.在index.jsp中寫一個響應這個handler方法的< a>
2.編寫這個handler方法
3.編寫這個SUCCESS.jsp,使其顯示map裡面的內容
4.執行結果,點選這個< a>標籤
@SessionAttributes
-
若希望在多個請求之間共用某個模型屬性資料,則可以在控制器類上標註一個@SessionAttribute,SpringMVC將在模型中對應的屬性暫存到HttpSession中。
-
@SessionAttributes除了可以通過屬性名指定需要放到會話中的屬性外,還可以通過模型屬性的物件型別指定哪些模型屬性需要放到會話中
例子程式:
前提User.java
package com.springmvc.entities; public class User { private String username; private String password; private int age; private String email; private Address address; public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public Address getAddress() { return address; } public void setAddress(Address address) { this.address = address; } @Override public String toString() { return "User{" + "username='" + username + '\'' + ", password='" + password + '\'' + ", age=" + age + ", email='" + email + '\'' + ", address=" + address + '}'; } public User(String username, String password, String email, int age) { this.username = username; this.password = password; this.age = age; this.email = email; } }
1.在index.jsp中寫一個< a>響應handler方法
2.編寫控制器的handler方法
3.編寫SUCCESS.jsp使其顯示相應的值
4.執行結果,點選< a>標籤
tips:@SessionAtrtributes 指定 放入的值 和 放入的型別