@SessionAttribute示例及伺服器跳轉和重定向寫法
阿新 • • 發佈:2019-01-04
package com.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.SessionAttributes; import org.springframework.web.bind.support.SessionStatus; import com.entity.Person; @Controller @RequestMapping(value="/model/")//前面有過m1映射了,可以通過這種方式模組化 @SessionAttributes(value="person")//自動將ModelAttribute或方法裡的person屬性放到session作用域了 public class HelloAnnotation2 { @ModelAttribute("person")//它先於其他處理方法執行,將封裝的資料一次提交給檢視了,不用在每個方法裡,寫同樣的提交程式碼 public Person getPerson(){ Person person = new Person(); person.setName("zhongbencong"); person.setSex("男"); return person; } @RequestMapping("/m1") public String m1(){ return "index"; } @RequestMapping("/m2") public String m2(SessionStatus sessionStatus){ //@SessionAttribute是session作用域,但不等同HttpSession,用session.removeAttribute無法刪除 //只能通過接收SessionStatus實現類引數,按如下程式碼刪除 if(!sessionStatus.isComplete()) sessionStatus.setComplete(); return "index"; } //跳過檢視解析器的伺服器跳轉 @RequestMapping("/m3") public String m3(){ return "forward:/index.jsp"; } //重定向(跳過檢視解析器) @RequestMapping("/m4") public String m4(){ return "redirect:/index.jsp"; } }