若但願站在多個請求之間共用某個模型屬性數據,則能夠在控制器類上標註一個@SessionAttributes,springmvc 將在模型中對應的屬性暫存到HttpSession中spring
@SessionAttributes除了經過屬性名指定須要放到會話中的屬性外,還能夠經過模型屬性的對象類型指定哪些模型屬性須要放到會話中session
@SessionAttributes(types=User.class)會將隱含模型中全部類型爲User.class的屬性添加到會話中。mvc
@SessionAttributes(value={"user1","user2"})app
@SessionAttributes(types={User.class,Dept.class})jsp
@SessionAttributes(value={"user1","user2"},types={Dept.class})spa
1.在success.jsp中設置一個超連接,指向新建的result.jsp文件,傳遞city,看是否能傳遞過去code
result.jsp對象
<body> city:${requsetScope.city } </body>
結果失敗了,參數不能由success.jsp中傳到result.jsp中,由於city放在了MapModel中,因此它只有在請求域中才是有效的。ci
@SessionAtttributes(value={});it
1.要求放置的值必須在模型數據裏面(request範圍中有限)
2.標註屬性:
經過屬性key完成session的共享數據處置
1.value:String()
value:{"a","b"}
2.能夠經過模型數據當中的類型,共享數據的設置
@RequestMapping("/springmvc") @SessionAttributes(value={"city"}) public class helloworldhandler {
${requestScope.city} ${sessionScope.city} <a href="result">result</a>
city:${sessionScope.city }
@SessionAttributes(types={String.class})
@SessonAttribute將搜索因此String類型屬性
city:${sessionScope.city } name:${sessionScope.name }
最後有一個值得注意的地方,若是在模型數據中沒有屬性的值,如在success.jsp中沒有name,則在result.jsp中也不會接收到name.