1. 程式人生 > >@Responsebody註解

@Responsebody註解

即使 location mode https 處理 service www lag response

@RequestBody

作用:

i) 該註解用於讀取Request請求的body部分數據,使用系統默認配置的HttpMessageConverter進行解析,然後把相應的數據綁定到要返回的對象上;

ii) 再把HttpMessageConverter返回的對象數據綁定到 controller中方法的參數上。

使用時機:

A) GET、POST方式提時, 根據request header Content-Type的值來判斷:

  • application/x-www-form-urlencoded, 可選(即非必須,[email protected]
    , @ModelAttribute也可以處理,[email protected]);
  • multipart/form-data, 不能處理([email protected]);
  • 其他格式, 必須(其他格式包括application/json, application/xml等。這些格式的數據,[email protected]);

B) PUT方式提交時, 根據request header Content-Type的值來判斷:

  • application/x-www-form-urlencoded, 必須;
  • multipart/form-data, 不能處理;
  • 其他格式, 必須;

說明:request的body部分的數據編碼格式由header部分的Content-Type指定;

@ResponseBody

作用:

該註解用於將Controller的方法返回的對象,通過適當的HttpMessageConverter轉換為指定格式後,寫入到Response對象的body數據區。

使用時機:

返回的數據不是html標簽的頁面,而是其他某種格式的數據時(如json、xml等)使用;

controller層對應栗子:

@Controller
@RequestMapping("system/user")
public
class UserCntroller { @Resource(name="UserService") private UserService userService; @RequestMapping(value = "login" , method = RequestMethod.POST) @ResponseBody public int login(HttpServletRequest request,String account,String password){ boolean loginResult; account = account.trim(); password = password.trim(); int flag =userService.login(account,password); if(flag == 1){ System.out.println("sss"); return 1; }else{ return 0; } } }

js對應栗子:

$.ajax({
            type:"POST",
            url:"system/user/login.do",
            data:‘account=‘+account+‘&password=‘+password,
            dataType:"json",
            async:true,
            success:function(data){
                if(data==1){
                    location.href="index.html";
                }
                if(data==0){
                    alert("輸入信息有誤!!!");
                }
            },

@Responsebody註解