天天看點

Java基礎——前台發送請求及參數傳遞

程式開發過程中,前台向背景發送請求及傳遞參數,目前個人總結為三種方式,具體如下:

一、表單送出:

表單送出可分為get請求跟post請求,一般隻做查詢時用get請求,還做其他操作時(如:更新等)用post請求,執行個體如下:

前台表單:

<form id="test" action="/product_notify/save" method="get">

  <input type="text" id="quantity" name="quantity" value="1" maxlength="4"/>

  ...

</form>

or

<form id="test" action="${base}/product_notify/save" method="post">

  <input type="text" id="quantity" name="quantity" value="1" maxlength="4"/>

  ...

</form>

action:請求位址(背景controller映射路徑)

背景controller接收:

@GetMapping("/product_notify/save")//若是get請求則用@GetMapping,若是post請求則用@PostMapping注解!

public String checkouts(Integer quantity//接收前台表單input标簽name為quantity的值

){}

二、Ajax請求:

前台請求:

$.ajax({

    url: "/product_notify/save",//請求路徑

    type: "POST",//請求方式

    data: {skuId: skuId, email: $productNotifyEmail.val()},//請求參數

    dataType: "json",

    beforeSend: function() {

        $addProductNotify.prop("disabled", true);

    },

    success: function(data) {

        $addProductNotify.val("${message("shop.product.addProductNotify")}");

        $productNotify.hide();

    },

    complete: function() {

        $addProductNotify.prop("disabled", false);

    }

});

背景接收:同表單送出!

三、普通請求:

前台請求:

var cartItemIds = new Array();

var quantitys = new Array();

var j = 0;

for (var i = 0, len = tr.length; i < len; i++) {

    if (tr[i].getElementsByTagName('input')[0].checked) {

        cartItemIds[j] = tr[i].getElementsByTagName('input')[0].value;

        quantitys[j] = tr[i].getElementsByTagName('input')[2].value;

        j++;

    }

}

location.href="${base}/order/checkouts?cartItemIds=" target="_blank" rel="external nofollow" +cartItemIds+"&quantitys="+quantitys;

可直接傳遞數組參數!

背景controller接收:

@GetMapping("/checkouts")//該處要使用GetMapping而不能使用PostMapping,普通請求是get請求方式!

public String checkouts( String[] cartItemIds,String[] quantitys){}

以上都可以用request.getParameter("參數key");擷取指定參數!

繼續閱讀