Javascript 如何通过href将jquery变量作为参数传递给Java控制器?

Javascript 如何通过href将jquery变量作为参数传递给Java控制器?,javascript,java,jquery,Javascript,Java,Jquery,这是我的javascript变量: var dataid = dataInfo[i]; 我想通过href将变量传递给我的java控制器: row = row + "<tr><td>" + dataid + "</td><td>" + schoolid + "</td><td>" + "<td><a class='details' id='" + dataid + "' hr

这是我的javascript变量:

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>";
这是我的控制器:

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);

    }
@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);
    }
}
但是在ajax调用之后,它不会呈现新页面


我该怎么做呢?

您可以使用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);
    }

});
在控制器上:

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);

    }
@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);
    }
}
@ResponseBody
@CrossOrigin@RequestMapping(value=“/path”,method=RequestMethod.POST,consumes=MediaType.APPLICATION\u JSON\u value)
私有ResponseEntity someMethod(@RequestBody YourObject obj){
//你在这里编码吗
返回新的ResponseEntity(modifiedObject,HttpStatus.OK);
}捕获(例外e){
返回新的响应属性(HttpStatus.BAD_请求);
}
}
它可以工作

我把它改成:

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


你不能,java在服务器端执行,js在客户端。你不能将js变量作为参数传递给java函数。你是在使用模板引擎在服务器端对代码进行预处理吗?因为js不能访问java代码,那么我该怎么办呢?你可能想看看AJAX。