Spring MVC提供了以下几种途径输出模型数据:
1)ModelAndView:处理方法返回值类型为ModelAndView时,方法体即可通过该对象添加模型数据;
2)Map及Model:处理方法入参为org.springframework.ui.Model、org.springframework.ui.ModelMap或java.util.Map时,处理方法返回时,Map中的数据会自动被添加到模型中;
3)@SessionAttributes:将模型中的某个属性暂存到HttpSeession中,以便多个请求之间可以共享这个属性;
4)@ModelAttribute:方法入参标注该注解后,入参的对象就会放到数据模型中。
在SpringMVC的hanlder类中用@ModelAttribute标注的方法,会在该handler内所有目标(action)方法执行之前被SpringMVC调用。
用法示例:
Account.java
1 package com.dx.springlearn.entities; 2 3 public class Account { 4 public Integer id; 5 private String username; 6 private String password; 7 private String registerDate; 8 private String registerIP; 9 10 public Account() { 11 } 12 13 public Account(Integer id, String username, String password, String registerDate, String registerIP) { 14 super(); 15 this.id = id; 16 this.username = username; 17 this.password = password; 18 this.registerDate = registerDate; 19 this.registerIP = registerIP; 20 } 21 22 public Account(String username, String password, String registerDate, String registerIP) { 23 super(); 24 this.username = username; 25 this.password = password; 26 this.registerDate = registerDate; 27 this.registerIP = registerIP; 28 } 29 30 public Integer getId() { 31 return id; 32 } 33 34 public void setId(Integer id) { 35 this.id = id; 36 } 37 38 public String getUsername() { 39 return username; 40 } 41 42 public void setUsername(String username) { 43 this.username = username; 44 } 45 46 public String getPassword() { 47 return password; 48 } 49 50 public void setPassword(String password) { 51 this.password = password; 52 } 53 54 public String getRegisterDate() { 55 return registerDate; 56 } 57 58 public void setRegisterDate(String registerDate) { 59 this.registerDate = registerDate; 60 } 61 62 public String getRegisterIP() { 63 return registerIP; 64 } 65 66 public void setRegisterIP(String registerIP) { 67 this.registerIP = registerIP; 68 } 69 70 @Override 71 public String toString() { 72 return "Account [ 73 + registerDate + ", registerIP=" + registerIP + "]"; 74 } 75 76 77 }