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";
}
}
@SessionAttribute示例及服务器跳转和重定向写法
最新推荐文章于 2024-08-06 20:45:10 发布