業務方法的參數類型、參數個數是任意的,根據須要使用。html
常見的參數類型:瀏覽器
獲取Servlet原生的APIapp
向視圖傳遞數據,會自動將Model、ModelMap中的數據傳給視圖。spa
接收表單傳遞的數據code
視圖名+數據htm
返回視圖名,會與視圖解析器中的前綴、後綴拼接起來,組成完整的視圖名。blog
有時候接收到請求後,作一些操做就OK了,沒必要返回視圖來響應,這時能夠把返回值類型寫成void;get
若是想轉發、重定向、向視圖傳遞數據,能夠傳入參數HttpServletRequest、HttpServletResponse,it
須要注意的是,使用HttpServletRequest、HttpServletResponse進行轉發、重定向時,不會使用視圖解析器,須要寫完整的視圖名。io
@RequestMapping("/userController") public String handler(){ //.... return "user_info"; }
@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()的內容保存到文件中(下載)。