. 若希望在多个请求之间共用某个模型属性数据,则可以在控制器类上标注一个@SessionAttributes,SpringMVC 将在模型中对应的属性暂存到HTTPSession中。
. SessionAttributes除了可以通过属性名指定需要放到会话中的属性外,还可以通过模型属性的对象模型指定哪些模型属性需要放到会话中。
. @SessionAttributes(types=User.class)会将隐含模型中的所有类型为User.class的属性添加到 会话中。
——@SessionAttributes(value={"user1","user2"})
——@@SessionAttributes(type={User.class,Dept.class})
——@SessionAttributes(value={"user1","user2"},type={Dept.class})
index.jsp
<a href="springmvc/testSessionAttributes">Test SessionAttributes</a>
<br><br>
SpringMVCTest.java
@RequestMapping("/testSessionAttributes")
public String testSessionAttributes(Map<String,Object> map) {
User user = new User("Tom","123","xsm521@163.com",13);
map.put("user",user);
map.put("school","JXNU");
map.put("names", "小智");
map.put("time", new Date());
return SUCCESS;
}
注意在类名之前加上:
@SessionAttributes(value= {"user"},types= {String.class})
User.java
public class User {
private String username;
private String password;
private String email;
private int age;
private Address address;
public Address getAddress() {
return address;
}
public void setAddress(Address address) {
this.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 String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "User [username=" + username + ", password=" + password + ", email=" + email + ", age=" + age
+ ", address=" + address + "]";
}
public User(String username, String password, String email, int age) {
super();
this.username = username;
this.password = password;
this.email = email;
this.age = age;
}
public User() {
}
}
success.jsp
<h4 align="center">Success page</h4>
time: ${requestScope.time }
<br><br>
names: ${requestScope.names }
<br><br>
request user: ${requestScope.user }
<br><br>
session user: ${sessionScope.user }
<br><br>
request school: ${requestScope.school }
<br><br>
session school: ${sessionScope.school }
运行结果: