SpringMVC controller中業務方法的參數、返回值

 

業務方法的參數

業務方法的參數類型、參數個數是任意的,根據須要使用。html

 

常見的參數類型:瀏覽器

  • HttpServletRequest、HttpServletResponse、HttpSession   

     獲取Servlet原生的APIapp

 

  • Model 、ModelMap   

     向視圖傳遞數據,會自動將Model、ModelMap中的數據傳給視圖。spa

 

  • 簡單數據類型 、實體類

     接收表單傳遞的數據code

 

 


 

 

 

常見的返回值類型

  • ModeAndView 

     視圖名+數據htm

 

  • String   

      返回視圖名,會與視圖解析器中的前綴、後綴拼接起來,組成完整的視圖名。blog

 

  • void 

     有時候接收到請求後,作一些操做就OK了,沒必要返回視圖來響應,這時能夠把返回值類型寫成void;get

   若是想轉發、重定向、向視圖傳遞數據,能夠傳入參數HttpServletRequest、HttpServletResponse,it

   須要注意的是,使用HttpServletRequest、HttpServletResponse進行轉發、重定向時,不會使用視圖解析器,須要寫完整的視圖名。io

 

 


 

 

 

示例   返回視圖名

  @RequestMapping("/userController")
    public String handler(){
        //....
        return "user_info";
    }

 

 


 

 

 

示例  使用Model向視圖傳遞數據

    @RequestMapping("/userController")
    public String handler(Model model){
        User user = new User();
        user.setUsername("chy");
        user.setPassword("abcd");
        
        model.addAttribute("user", user);
        return "user_info";
    }

在視圖中可經過${key}的方式獲取對應的value。

Model中可儲存多個數據,使用多個setAttribute()便可,數據的類型能夠不相同(實質是使用Map儲存數據)。

 

 


 

 

 

示例   直接輸出到瀏覽器

    @RequestMapping("/userController")
    public void handler(HttpServletResponse response) throws IOException {
        response.getWriter().print("<h1>hello</h1>");
    }

瀏覽器會解析裏面的html標籤。

注意print()纔是輸出到瀏覽器頁面上,write()是想瀏覽器寫數據,瀏覽器會把write()的內容保存到文件中(下載)。

相關文章
相關標籤/搜索