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"; }