簡體   English   中英

如何在Spring MVC中將數組變量從視圖傳遞到控制器

[英]How to pass array variable from view to controller in spring mvc

我想將變量從視圖傳遞到控制器,而我正在使用ajax調用來實現它,但在下面出現了錯誤。 我不知道我在這里想念的是什么。

WARN 41440 --- [nio-8080-exec-9] osweb.servlet.PageNotFound:請求方法'POST'不支持

這是我的代碼

document.getElementById('btntest').onclick = function(){
  var selchbox = getSelectedChbox(this.form);     // gets the array returned by getSelectedChbox()
  myvalue = JSON.stringify(selchbox);
 //document.write("check check"+selchbox);
  $.ajax({
        type: "POST",
        url: "UserController/delete",
        contentType: "application/json; charset=utf-8",
        data: {key:myvalue},
        cache: false,
        success: function (data) {
                     alert("Are you sure?");
                 },
                 error: function (args) {
                     alert("Error on ajax post");
                 }

    });
  alert(selchbox);
}

我的控制器方法如下所示

@RequestMapping(value = "/delete", method = RequestMethod.POST) 
public String delete(@RequestBody String key) {
    System.out.println("My Array value"+key.toString());
    return key;
}

我在這里想念什么? 任何幫助

至少有兩個問題

  1. 網址:ajax中的“ UserController / delete”與控制器中的“ / delete / {sORGID}”不匹配。
  2. data:您的Ajax中的{key:myvalue},屬性名稱為key,在您的控制器中為myvalue [],這也應該相同。

首先,如果要刪除,為什么不使用動詞delete http?

我認為您沒有使用正確的參數:RequestParam用於將sORGID參數映射到URL(您在客戶端未使用的參數,必須使用它或將其刪除)。 如果要映射Json,則必須使用@RequestBody。

希望對您有所幫助

最后,我可以將值從我的視圖傳遞到控制器,我正在發布代碼。 這是我的js代碼

document.getElementById('btntest').onclick = function(){
  var selchbox = getSelectedChbox(this.form);     // gets the array returned by getSelectedChbox()
var myvalue = JSON.stringify(selchbox);
 //document.write("check check"+selchbox);
  $.ajax({
        type: "POST",
        url: "/delete",
        dataType : "JSON",
        contentType:"application/json; charset=utf-8",
        data: JSON.stringify(selchbox),
        cache: false,
        success: function (data) {
                     alert("Are you sure?");
                 },
                 error: function (args) {
                     alert("Error on ajax post");
                 }

    });
  alert(selchbox);
}

還有我的控制器代碼

    @RequestMapping(value = "/delete", method = RequestMethod.POST)
     public String delete(@RequestBody String value){
     System.out.println("My Array value"+value.toString());
     return value;
     }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM