如何从JavaScript函数调用Java方法?

时间:2018-02-20 14:05:54

标签: javascript java html automation

我有一个场景,例如当用户点击HTML页面中的超链接时,它必须使用ID(在超链接的onclick方法中传递id)并调用接受ID参数的Java方法。根据ID,它将一些值作为数组返回给Javascript函数。

这是我的java脚本函数

function showTestCaseReport(testCaseId, testSteps)
{
    var jObject = Java.type('Practice.myclasses.GenerateReport');
    var stepResult = jObject.getTestStepsByCaseId(testCaseId); 
    alert(stepResult.length);
}

但是当它点击超链接时,它不起作用,甚至没有显示警告对话框。

有没有办法整合javascript函数和java方法?

2 个答案:

答案 0 :(得分:1)

您需要对执行Java函数的页面进行ajax调用,并将数据返回给JS

 $.ajax({
  url: "java_page.jsp",
  data: ID
  }).done(function(data) {
  //Do what you need with data(your array) hear
  });

PS。最佳做法是返回JSON格式数据,以便您的java代码返回JSON

答案 1 :(得分:0)

在HTML中:

<a href="<c:url value="/test/${object.Id}" />" >Test</a>

在Java控制器中:

您必须使用@PathVariable来传递ID。

@RequestMapping(value = "/test/{Id}", method = RequestMethod.GET)
    public String Controller(@PathVariable("Id") String Id) {
       ...
    }

您可以使用href和Id直接点击控制器。

如果你想通过JS Ajax点击Java控制器。 在JS:AJAX Call

 $.ajax({
        type: "POST",
        url: "test",
        data: loginData,
        success: function (result) {
            // do something.
        },
        error: function (result) {
            // do something.
        }
    });

希望这会有所帮助..!