import java.util.HashMap; import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.support.SessionStatus; import org.springframework.web.portlet.bind.annotation.RenderMapping; import org.springframework.web.servlet.ModelAndView; import com.etc.entity.Book; import com.etc.entity.Student; //通过注解创建1个控制器对象 @Controller public class HelloAction { public HelloAction() { System.out.println("构造了!!!"); } //通过注解配置该方法处理含有hello的请求 @RequestMapping("/hello") public String hello() { //返回一个视图标识.自动被映射到/WEB-INF/jsp/hello.jsp的文件 return "hello"; } //通过modelandview返回模型和视图的打包 @RequestMapping("/showdata") public ModelAndView showdata() { Map<String,Object> data = new HashMap<String,Object>(); data.put("str", " i am bai"); //存储字符串 data.put("stu", new Student(1,"白")); //存储字符串 ModelAndView ma = new ModelAndView("showdata", data); return ma; } @RequestMapping(method=RequestMethod.GET,value="/showinput") public ModelAndView showinput( @RequestParam(value="a",required=true) String a, @RequestParam(value="b",required=false) String b ) { Map<String,Object> data = new HashMap<String,Object>(); data.put("a", a); //存储字符串 data.put("b", b); //存储字符串 ModelAndView ma = new ModelAndView("showinput", data); return ma; } //在请求作用域初始化1个空模型 @ModelAttribute("student") public Student initStudent() { return new Student(); } @ModelAttribute("book") public Book initBook() { return new Book(); } //用于输入一个学生。练习,创建Animal类,aid,aname,feetcount。使用模型驱动输入1个动物并显示。 @RequestMapping("/input_stu") public String showinput_stu (@ModelAttribute("student") Student stu ,@ModelAttribute("book") Book book) { return "show_stu"; } @RequestMapping(value="/{a}/{b}/input_path") public ModelAndView inputpath(@PathVariable String a,@PathVariable String b) { Map<String,Object> data = new HashMap<String,Object>(); data.put("a", a); //存储字符串 data.put("b", b); //存储字符串 ModelAndView ma = new ModelAndView("showinput_path", data); return ma; } //使用rest风格,录入1个学生 @RequestMapping(value="/{sid}/{sname}/input_stu_path.html") public ModelAndView inputpath(@PathVariable int sid,@PathVariable String sname) { Map<String,Student> data = new HashMap<String,Student>(); data.put("stu", new Student(sid, sname) ); //存储学生 ModelAndView ma = new ModelAndView("showinput_stu_path", data); return ma; } //使用老方法获取request,session @RequestMapping(value="/getsession1") public String getsession1(HttpServletRequest request) { request.setAttribute("r", "rrrrrrrrrrr"); HttpSession s = request.getSession(); s.setAttribute("s1", "11111111"); return "show_session1"; } //使用新方法获取session @RequestMapping(value="/getsession2") public String getsession1(HttpSession session ,HttpServletRequest request ,SessionStatus sta) { //如果该session被删除,需要重建*/ if (sta.isComplete()) session = request.getSession();//重建sessin session.setAttribute("s2","222222"); //session.invalidate(); //删除整个session return "show_session2"; } }