2017-04-20 53 views
0

這是我的變量在javascript:如何通過href將jQuery變量作爲參數傳遞給Java控制器?

var dataid = dataInfo[i]; 

我想通過HREF的變量傳遞給我的Java控制器:

row = row + "<tr><td>" + dataid + "</td><td>" + 
     schoolid + "</td><td>" + 
     "<td><a class='details' id='" + dataid + "' href='@{DataManagement.dataDetails(dataId)}'>Details</a></td>"+ 
     "<td>"+ 
     </tr>"; 

但控制器獲取空值。

我想這個用ajax:

 $.ajax({ 
      type: "GET", 
      url: "@{DataManagement.dataDetails}", 
      data: { 
       id: dataId 
      }, 
      success: function(data) { 
       console.log(data); 

      } 


     }); 

這是我的控制器:

public static void dataDetails(Long id) throws SQLException { 

     Logger.info("id: "+ id); 

     //dataId=dataId.trim(); 

     //Long iid = Long.parseLong(dataId); 
     Data data = Data.findById(id); 


     String totalStudent = Data.getTotalStudent(1L); 

     Logger.info("totalStudent: " + totalStudent); 

     renderArgs.put("totalStudent",totalStudent); 

     render(data,totalStudent); 

    } 

但經過AJAX調用它沒有呈現新的一頁。

我該怎麼做?

+0

你不能,Java是在服務器端執行,JS是在客戶端 – madalinivascu

+0

你不能將一個js變量作爲一個參數去一個java功能 – madalinivascu

+0

你是否使用了一些模板引擎來預處理服務器端的代碼?因爲js無法訪問java代碼 – Jenian

回答

1

它的工作原理!

我把它改爲:

<td><a class='details' id='" + dataid + "' href='/datamanagement/dataDetails/"+dataid+"'>Details</a></td> 
0

您可以發送一個帶有Ajax的json請求並在控制器上接受它。

Ajax請求:

$.ajax({ 
    type: "POST", 
    contentType: "application/json", 
    data: JSON.stringify(yourObject), 
    url: "/path", 
    success: function (msg) { 
     console.log(msg); 
     window.location = "/redirectTo"; 
    }, 
    error : function(e) { 
     console.log('Error: ' + e); 
    } 

}); 

在控制器:

@ResponseBody 
@CrossOrigin @RequestMapping(value = "/path", method = RequestMethod.POST, consumes=MediaType.APPLICATION_JSON_VALUE) 
private ResponseEntity<YourObject> someMethod(@RequestBody YourObject obj){ 
     // do your coding here 
     return new ResponseEntity<YourObject>(modifiedObject, HttpStatus.OK); 
    } catch (Exception e) { 
     return new ResponseEntity<YourObject>(HttpStatus.BAD_REQUEST); 
    } 
} 
相關問題