SpringMVC之学习(2)值得接收和传递
springmvc中
@Controller 来标识一个控制器
@RequestMapping来标识请求路径,可以写在类名上,也可以写在方法名上。写在类,表示所有的方法都在此路径下。
package com.sun.action; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @Controller @RequestMapping("/view") public class ViewPageController { @RequestMapping("/index") public String Index(){ return "index"; } @RequestMapping("/index2") public String Index2(){ return "index2"; } }
传递值给页面显示的方式
一种是Model 一种是ModelAndView
@RequestMapping("/hello") public String hello(Model model){ //讲参数传递给页面显示 model.addAttribute("name", "page name ====== hello"); return "hello"; }
这里return 的内容就是jsp的名字。
//返回页面,同时返回值 @RequestMapping(value = "/queryListMV.do") public ModelAndView queryListMV(HttpServletRequest request, HttpServletResponse response) { ModelAndView mv = new ModelAndView(); mv.setViewName("/newuser"); //返回页面名 mv.addObject("data", new User());//返回map对象 return mv; }
这里ViewName 里面的内容就是jsp页面的名。
参数的接收
第一种,当时是直接从request里面接收表单或者URL传过来的值。
@RequestMapping(value = "/queryListMV2.do",method=RequestMethod.GET) public ModelAndView queryListMV2(HttpServletRequest request, HttpServletResponse response) { String name = request.getParameter("name"); Integer age = Integer.valueOf(request.getParameter("age")); User user = new User(); user.setName(name); user.setAge(age); ModelAndView mv = new ModelAndView(); mv.setViewName("/newuser"); //返回页面名 mv.addObject("data",user);//返回map对象 return mv; }
第二种 从path 上获取指定的参数
/* * @PathVariable 指定path上面的参数 */ @RequestMapping("/pathview/{age}/{years}/{month}") public String pathview(Model model, @PathVariable(value="age") String age, @PathVariable(value="years") String years, @PathVariable(value="month") String month ){ model.addAttribute("age", age); model.addAttribute("years", years); model.addAttribute("month", month); model.addAttribute("name", "page name ====== pathview"); return "pathview"; }
第三种:用requestParam 接收
/* * @RequestParam 用来接收超链接的参数,可以设置默认值 */ @RequestMapping("/userInfo") public String userInfo(Model model,@RequestParam(value="name",defaultValue=adminuser) String name){ if("admin".equals(name)){ //讲参数传递给页面显示 model.addAttribute("name", "page name ====== "+ name); }else{ model.addAttribute("name", "page name ====== "+ name); } return "userInfo"; }
第四种, 用 @ModelAttribute接收表单对象
/* * * 传递对象,通过对象,接受form表单的对象值 */ @RequestMapping(value="/adduser",method=RequestMethod.POST) public String adduser(Model model,@ModelAttribute("SpringWeb")User user){ model.addAttribute("name", user.getName()); model.addAttribute("age", user.getAge()); model.addAttribute("id", user.getId()); System.out.println("12231313"); return "adduser"; }