MVC架構中的controller的幾種寫法


開始寫代碼之前,我們先來看一下spring MVC概念。一張圖能夠清晰得說明。

除了controller,我們需要編寫大量代碼外,其余的都可以通過配置文件直接配置。

MVC的本質即是將業務數據的抽取和業務數據的呈現分開來。controller是連接model和View的橋梁,在這一層,主要是業務邏輯的設置。

ModelAndView有兩種形式:Model 和 Map這使得在編寫controller中的方法時也有兩種參數形式。

首先來看基礎代碼,這也常用的形式:

//url: /user/show2?userId=123
    @RequestMapping(value = "/show2?userId",method = {RequestMethod.GET})
    public String showUser2(@RequestParam("userId")Integer userId,Model model){
        User user = userService.getUserById(userId);
        model.addAttribute(user);
        return "showUser";
    }

比較傳統的方式是使用HttpServletRequest,代碼如下:

//url:/user/show1?userId=123
    @RequestMapping("show1")
    public String showUser(HttpServletRequest request){
        int userId = Integer.parseInt(request.getParameter("userId"));
        User user = userService.getUserById(userId);
        request.setAttribute("user", user);
        return "showUser";
    }

更為現代一點的方式是使用Map,同時url地址更為簡潔,可以直接輸入路徑變量的值,而不需要再把路徑變量也寫出來。代碼如下:

//url: /user/show3/{userId}
    @RequestMapping(value = "/show3/{userId}",method = RequestMethod.GET)
    public String showUser3(@PathVariable("userId") Integer userId,Map<String,Object> model){
        User user = userService.getUserById(userId);
        model.put("user", user);
        return "showUser";
    }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM