Vue傳遞數據到後臺SpringMVC接收解析返回

最近在自學vue,開始以爲跟angular大同小異,但是真正使用的時候發現還是很多不一樣的地方,可能是因爲剛剛開始理解的還不夠深入O(∩_∩)O。 下面說說前端jsp怎麼和後臺交互,後臺使用的是springMvc框架。

html部分

<div id="app">
  <table class="table table-bordered table-striped" style="font-size:12px;">
         <tr>

            <th style="text-align:center;">xxx</th>
            <th style="text-align:center;">xxx</th>
            <th style="text-align:center;">xx</th>
        </tr>
        <tr v-for="e in exceptionList" style="cursor:pointer;">
        </tr>
  </table>
 </div>

js部分,此處需要引入vue-resource庫才能使用$http請求,可以用: https://cdn.jsdelivr.net/vue.resource/1.0.3/vue-resource.min.js

$(function(){
    var params = {};
    var vm = new Vue( {
        el: '#app',
        data: {
            currentPage :"1",
            exceptionList : [],
            totalItems: ''
        },
        created: function () {  // created爲創建Vue實例後立馬執行
            // `this` 指向 vm 實例
           // var pageIndex = 1;
           // params.length = 10;
           // params.start = (pageIndex    -1) * 10;
            // POST請求
            this.$http.post(
                BasePath + "/PriceException/search.do",
                // 請求體重發送的數據
                {length: '10', start : 2},{emulateJSON:true}).then(function (resp) {

                // 請求成功回調
                debugger;
                this.totalItems = resp.data.data.count;
                // this.$set('exceptionList', resp.data.data.posts);
                 this.exceptionList = resp.data.data.posts;
                // this.totalItems = resp.data.count;
            }, function () {
                // 請求失敗回調
            });

        }

} );
vm.$watch("currentPage",function(val,oldval){
   alert(val);
})//主動調用$watch方法來進行數據監測</span>
})

java後臺部分

@RequestMapping(value = "/search", method= RequestMethod.POST )
@ResponseBody
public Object searchResult(PagenationVo pVo) {

參數pVo對象裏面一定要包含js傳遞過來的屬性。

到這裏,這樣就能實現vue和後臺交互了。

PS:在使用過程中,開始怎麼都不能把參數傳到後臺,springMvc的Controller怎麼都拿不到值, 一直報錯400、415錯誤,應該是參數解析問題,實驗了很久,按上面那種方式終於成功了,汗!
還有因爲我是分頁功能,需要傳入length參數,開始寫成:{length: 10, start : 2}也是傳不過去這兩個參數,搞了很久,後來才知道是因爲length:10,這裏把它當做10個參數傳入了
這裏寫圖片描述

改成:{length: ‘10’, start : 2}就好, 目前還沒搞明白爲什麼會這樣,難道是因爲vue-resource衝突??

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章