一:
spring mvc中的@PathVariable是用來獲得請求url中的動態參數的
@PathVariable用於方法中的參數,表示方法參數綁定到地址URL的模板:
例
- @Controller
- public class TestController {
- @RequestMapping(value="/user/{userId}/roles/{roleId}",method = RequestMethod.GET)
- public String getLogin(@PathVariable("userId") String userId,
- @PathVariable("roleId") String roleId){
- System.out.println("User Id : " + userId);
- System.out.println("Role Id : " + roleId);
- return "hello";
- }
- @RequestMapping(value="/product/{productId}",method = RequestMethod.GET)
- public String getProduct(@PathVariable("productId") String productId){
- System.out.println("Product Id : " + productId);
- return "hello";
- }
二:
在Spring MVC里,@ModelAttribute通常使用在Controller方法的參數注解中,用於解釋model entity,但同時,也可以放在方法注解里。
如果把@ModelAttribute放在方法的注解上時,代表的是:該Controller的所有方法在調用前,先執行此@ModelAttribute方法。
/**
* 登錄提交數據處理
* @Title: login
*/
@RequestMapping(value="sys/loginIn" ,method = RequestMethod.POST)
public @ResponseBody DataJSON login(@ModelAttribute User user,
HttpServletResponse response,
HttpServletRequest request,
String autoLogin) throws IOException{
try{
//進行公共驗證
DataJSON dataJSON = UserUtil.userLoginVerifyPC(user);
三:
@RequestBody
作用:
i) 該注解用於讀取Request請求的body部分數據,使用系統默認配置的HttpMessageConverter進行解析,然后把相應的數據綁定到要返回的對象上;
ii) 再把HttpMessageConverter返回的對象數據綁定到 controller中方法的參數上。
使用時機:
GET、POST方式提時, 根據request header Content-Type的值來判斷:
- application/x-www-form-urlencoded, 可選(即非必須,因為這種情況的數據@RequestParam, @ModelAttribute也可以處理,當然@RequestBody也能處理);
- multipart/form-data, 不能處理(即使用@RequestBody不能處理這種格式的數據);
- 其他格式, 必須(其他格式包括application/json, application/xml等。這些格式的數據,必須使用@RequestBody來處理);
@ResponseBody
作用:
該注解用於將Controller的方法返回的對象,通過適當的HttpMessageConverter轉換為指定格式后,寫入到Response對象的body數據區。
使用時機:
返回的數據不是html標簽的頁面,而是其他某種格式的數據時(如json、xml等)使用;
四:
RequestMapping是一個用來處理請求地址映射的注解,可用於類或方法上。用於類上,表示類中的所有響應請求的方法都是以該地址作為父路徑。 @RequestMapping(value = "/aaa")//類級別,可以沒有 public class myController { @RequestMapping(value = "/bbb")//方法級別,必須有 public String getMyName() { return "myReturn"; } }
對應的action就是:<form action="aaa/bbb"> 返回頁面就是myReturn.jsp
五: