@Controller:表明该类是一个Controller;
@RequestMapping(参数) :为类或者方法定义一个url
@RequestParam(value = "id" ):获取请求中的参数
package com.hongcong.controller; import java.util.ArrayList; import java.util.List; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.servlet.ModelAndView; import com.hongcong.model.StudentModel; @Controller
//访问这个controller时,需要在url中加入/student @RequestMapping("/student") public class StudentController { private static List<StudentModel> studentList = new ArrayList<StudentModel>(); private int id =3; static{ studentList.add(new StudentModel(1,"张三",11)); studentList.add(new StudentModel(2,"李六",13)); studentList.add(new StudentModel(3,"王五",14)); }
//访问这个方法时,url为../student/studentList @RequestMapping("/studentList") public ModelAndView studentList(){
//ModelAndView的作用是传递参数和页面跳转 ModelAndView mav = new ModelAndView();
//跳转到student目录下的studentList.jsp页面 注:lib目录下的页面无法直接访问 mav.setViewName("student/studentList");
//传递参数 页面可以通过jstl表达式等方法获取参数 mav.addObject("studentList", studentList); return mav; } @RequestMapping("/preSave")
//@RequestParam(value = "otype",required = false) String otype 是获取请求中的参数并且赋值给otype这个变量,其中参数required = true时,那这个请求必须要有otype参数,不然会报错 public ModelAndView preSave(@RequestParam(value = "id" ) int id, @RequestParam(value = "otype",required = false) String otype){ ModelAndView mav = new ModelAndView(); StudentModel studentModel = new StudentModel(); if("update".equals(otype)){ for (StudentModel model : studentList) { if(model.getId() == id){ studentModel = model; break; } } } mav.addObject("studentModel", studentModel); mav.setViewName("student/StudentUpdate"); return mav; } @RequestMapping("/Save") public String Save(StudentModel studentModel){ if(studentModel.getId() == 0){ this.id++; studentModel.setId(this.id); }else{ for (StudentModel model : studentList) { if(id == model.getId()){ studentList.remove(model); break; } } studentModel.setId(id); } studentList.add(studentModel);
//重定向 return "redirect:/student/studentList.do"; } }