1. 程式人生 > >SpringBoot-獲取引數的方式

SpringBoot-獲取引數的方式

這篇文章要分享的是springboot 獲取引數的方式;
那我就按照請求方式來分類吧;
一、GET請求方式
**1、**我想用類似傳參的方式獲取引數?或者說用類似方法呼叫的方式?

   1.1
@RequestMapping("/getParam")
    public String getParamThroughGet(String aaa,String bbb){
           System.out.println(aaa);
      	   System.out.println(bbb);
        return null;
    }
1.2 這種方式效果跟1.1差不多,但用起來要繁瑣---使用@RequestParam 把請求引數和括號裡的引數繫結起來
@RequestMapping(value = "/getParamWithRequestParam",method =RequestMethod.GET)
    public String getParamWithRequestParam( @RequestParam("aaa") String aaa,@RequestParam(value = "bbb",required = false)String bbb){
        System.out.println(aaa);
        return null;
    }
2、我想看看請求中都有哪些細節?
@RequestMapping("/getParamThroughServlet")
    public String getParamThroughServlet( HttpServletRequest request ){
        System.out.println(request.getParameter("aaa"));
        return null;
    }
3、我想用實體類來接收引數
    @RequestMapping("/getParamThroughEntity")
    public String getParamThroughEntity( User list){
            System.out.println(list.getAge().toString());
        return null;
    }
4、這種方式讓我懷疑這樣設計的人,居心何在?!使用了類似佔位符一樣的東西,目前沒明白要幹什麼用。
      localhost:8080/ano/getParamDoubtedDanger/11/22
  @RequestMapping(value = "/getParamDoubtedDanger/{aaa}/{bbb}" ,method= RequestMethod.GET)
    public String getParamDoubtedDanger( @PathVariable int aaa,@PathVariable String bbb){
        System.out.println(aaa);
        System.out.println(bbb);
        return null;
    }

5、我想用Map<?T,?T> 來接收引數

@RequestMapping("/maVerUsdr.do")
	public ModelAndView maVerUsdr(@RequestBody Map<String, Object> params) {
		ModelAndView mav = null;
		mav = workorderService.maVerUsdr(params);
		return mav;
	}

二、POST請求方式
1、用實體類接收
2、用HttpServletRequest接收
3、我想接收表單資料 ,前端用FORM提交到後臺的資料應該怎麼接收呢?

  @RequestMapping(value="/addUser5",method=RequestMethod.POST)
    public String addUser5(@ModelAttribute("user") UserModel user) {
        System.out.println("username is:"+user.getUsername());
        System.out.println("password is:"+user.getPassword());
        return "demo/index";
    }