有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

我有一个场景,比如当用户从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) 个答案

  1. # 1 楼答案

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

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

    注:最佳实践是返回JSON格式的数据,这样java代码应该返回JSON

  2. # 2 楼答案

    在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调用

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

    希望这有帮助