2017-04-20 102 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); 
    } 
} 
相关问题