在JavaScript/jquery中调用bean方法?

在JavaScript/jquery中调用bean方法?,javascript,jquery,jsp,jakarta-ee,javabeans,Javascript,Jquery,Jsp,Jakarta Ee,Javabeans,我需要在JavaScript和/或jQuery中调用bean方法,并且必须根据方法返回的值做出决定 我们如何做到这一点?为了让JavaScript和JavaServlet能够对话,正如您所建议的,您将需要一个AJAX调用,这可以通过jQuery实现 首先,设置一个新的Servlet,它将充当各种ajaxweb服务。我们将保持简单,因此只需实现doGet()方法来处理HTTP GET请求。在该GET方法中,查看特定参数的查询字符串 例如: myServlet?myArgument1=value1

我需要在JavaScript和/或jQuery中调用bean方法,并且必须根据方法返回的值做出决定


我们如何做到这一点?

为了让JavaScript和JavaServlet能够对话,正如您所建议的,您将需要一个AJAX调用,这可以通过jQuery实现

首先,设置一个新的Servlet,它将充当各种ajaxweb服务。我们将保持简单,因此只需实现doGet()方法来处理HTTP GET请求。在该GET方法中,查看特定参数的查询字符串

例如:

myServlet?myArgument1=value1
(在本例中,确保web.xml将Servlet映射到/myServlet)

在Java代码中处理请求(从bean中获取值),然后在此基础上构建JSON响应。例如,您可以返回:

{ "response": "my value" }
Java端已经完成

在JavaScript方面,需要启动$.getJSON()查询

您可以通过以下方式执行此操作:

var myRequest = $.getJSON("myServlet?myArgument1=" + value1, 
    function(data) 
    {
        console.log( "success" );
        // Process the 'data', which is the JSON response.
        var returnedJson = JSON.parse(data);
        var value = returnedJson.response; // now equals "my value"
        // ...
    })     
    .fail(function() 
    {
        // Handle errors here
        console.log( "error" );
    })
    .always(function() 
    {
        // If you need to do something whether the request was success or fail,
        // do it here.
        console.log( "complete" );
    });
在我看来,这是最直接的方法。如果您正在寻找一个Java库,它可以让您轻松地解析或创建JSON,而不是“硬编码”,那么您可以看看JSON smart。

既然您称之为bean,我假设您有Java背景。那么您想从您的一个对象调用一个方法?你不需要jQuery——请确认这是否是你需要的,我可以在回答中给出一个例子。是的,这是一个基于Java的应用程序,实际上我已经从bean中获取了值,我只需要再次向bean发送一个调用,在Ajax调用中获取刷新的值,这就是为什么我需要JS/jQueryTank中的这个bean,现在我只想知道。。。。我有这个Json块,我在“freemiumFlag”中得到了返回值,因为它返回了一个对象,我怎么能得到这个变量的实际值。。。。。。。。。。var freemiumsflag=({url:“UtilBean/getStudentIdsForTransfer”,数据:{studentId:this.studentId},contentType:“application/json;charset=utf-8”,数据类型:“json”,成功:函数(){alert(“it worked”);},失败:函数(){alert(“Uh”);});要访问数据,请确保在success函数中添加一个'data'参数,例如:success:function(data){var myValue=data.myValue;}请看一看我将这个问题分开并解释了这个问题。非常感谢所有的帮助。