SpringMVC之學習(2)值得接收和傳遞

weixin_34162629發表於2018-05-17

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

 

相關文章