一、獲取請求引數
Spring獲取請求引數非常簡單,只要用到 @RequestParam 註解就可以了
如果不指定請求method的話,無論是get還是post引數都可以輕易獲取到
程式碼是下面這樣:
package com.learn.springMVCDemo;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
@Controller
public class RequestController {
@RequestMapping("requestDemo")
public String doRequest(Model model, @RequestParam(name="info", defaultValue = "some information") String info) {
model.addAttribute("info", info);
return "hello";
}
}
複製程式碼
在這段程式碼中 @RequestParam 註解的括號中 name表示引數名, defaultValue 指明預設的引數值。
GET方法請求這個頁面: 訪問地址 http://localhost:8080/LearnSpringMVCDemoFirst_war/requestDemo?info=helloWorldFromGETMethod
執行效果:
![Spring入門學習手冊 6:Spring MVC基礎中的基礎](https://i.iter01.com/images/36789a5f1b7e5e33c4a18bab58beaf8d29e8876ca9b1b07905f2dfeb4b33e916.png)
POST方法請求這個頁面:
訪問地址 http://localhost:8080/LearnSpringMVCDemoFirst_war/
提交表單
![Spring入門學習手冊 6:Spring MVC基礎中的基礎](https://i.iter01.com/images/b4878bcdfc1bd4f9249492cab2e5e2481c700abf582a4dc3f8a88439ff61c0ab.png)
執行結果
![Spring入門學習手冊 6:Spring MVC基礎中的基礎](https://i.iter01.com/images/d6b1dadd0c29db8edba550b20e746a80d0eb51b31f5f1438706e7dafafdd4136.png)
二、頁面重定向
重定向的時候只要在返回的時候加上 redirect 就可以了:
package com.learn.springMVCDemo;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class RedirectController {
@RequestMapping("redirect")
public String redirectDemo(Model model) {
model.addAttribute("message", "redirectInfo");
//重定向
return "redirect:/demo";
}
}
複製程式碼
上面的程式碼就是重定向到 /demo頁面了。
訪問地址: localhost:8080/LearnSpringMVCDemoFirst_war/redirect
![Spring入門學習手冊 6:Spring MVC基礎中的基礎](https://i.iter01.com/images/773d0aa0c505dcab3b10f9c203e14f26438f7365a9406142e8f1c68e0d0b0db0.png)
三、獲取URI路徑(@PathVariable)
package com.learn.springMVCDemo;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
@Controller
public class PathVariableController {
@RequestMapping("path/{prefix}/{name}/{suffix}")
public ModelAndView PathDemo(Model model,
@PathVariable(value = "prefix") String prefix,
@PathVariable(value = "name") String name,
@PathVariable(value = "suffix") String suffix) {
ModelAndView mv = new ModelAndView("hello");
mv.addObject("message","website URI path");
model.addAttribute("prefix", prefix);
model.addAttribute("name", name);
model.addAttribute("suffix", suffix);
return mv;
}
}
複製程式碼
在 @RequestMapping的括號中固定一個以上的路徑名稱,然後給分固定的路徑名稱直接加上大括號,在請求對映的方法引數中加上 @PathVariable註解的引數中,按照先後順序一一對應就可以獲取到路徑名稱。
執行結果:
![Spring入門學習手冊 6:Spring MVC基礎中的基礎](https://i.iter01.com/images/e67565b3c2b7c7ea8bdff15302223a9767a02b2dc367dc47df669350c90b2ad2.png)
四、不返回檢視直接返回字串
@RequestMapping("ResponseBody")
@ResponseBody
public String RequestBody() {
return "request body message!!!";
}
複製程式碼
在請求對映方法前直接加上 @ResponseBody註解,那麼返回的就不是檢視,而直接是ResponseBody
執行結果:
![Spring入門學習手冊 6:Spring MVC基礎中的基礎](https://i.iter01.com/images/f8bd87eac7038a7f03a994cc9aed1e74a88ba6e036c191d2cdb58ed97dba5875.png)
![Spring入門學習手冊 6:Spring MVC基礎中的基礎](https://i.iter01.com/images/71263846cfb99720edd35c4913fad1deb9a887dd221193aa90c0953847743b55.png)