【问题标题】:JSP - SERVLET - calling a javascript function from a servletJSP - SERVLET - 从 servlet 调用 javascript 函数
【发布时间】:2014-04-06 07:15:34
【问题描述】:

我有一个简单的 JSP 页面,它通过单击按钮调用 servlet,然后 servlet 调用一些内部方法来执行任务,然后到 servlet 操作结束的时候了,现在的目标是,在 servlet 函数结束时,我想将控件返回到 jsp 页面并很快执行一个 java 脚本(不会触发任何事件,只要控件到达 jsp,Javascript 就应该运行)。我怎样才能做到这一点。据我用谷歌搜索,不可能在不触发任何事件(如点击、悬停等)的情况下调用 javascript。有没有办法实现我的目标?

更新

<form action="http://localhost:90/Jdfront1/hello" onsubmit="return validate()">

<label>Topic :</label><input type="text" name="topic" id="topic"/><br>
<label>Number of pages :</label><input type="text" name="Nopages" id="Nopages"/><br>
<label>URL :</label><input type="text" name="link" id="link"/><br>
<label>isRange :</label><input type="text" name="range" id="range"/><br>
<input type="submit" value="click here!!" >

这是我的表格。

【问题讨论】:

    标签: java javascript jquery jsp servlets


    【解决方案1】:

    使用 AJAX 调用 Servlet,然后使用成功处理程序调用您的 JS 函数。

    您可以使用 jQuery 轻松做到这一点:

    $("#button-id").click(function() {
        $.ajax({
            url: "/url?topic="+$('#topic').val()+'&Nopages='+$('#Nopages').val()+'&link='+$('#link').val()+'&range='+$('#range').val(),
        })
        .done(function( data ) {
            // Invoke your function here
            validate();
        });
    });
    

    更多详情请见https://api.jquery.com/jQuery.ajax/

    服务器端,可以使用http://docs.oracle.com/javaee/6/api/javax/servlet/ServletRequest.html#getParameter(java.lang.String)获取查询字符串参数并进行处理。

    【讨论】:

    • 但问题是,调用的 URL 是 servlet 的。所以我会在表单的“action”属性中调用它。如果我使用上面所说的方法,我不能从表单中点击那个 url na??我的意思是,点击提交时我需要点击该网址(提交表单)
    • 请参考我在问题中更新的表格
    • 好的,你的表单提交到服务器端控制器,并返回到一个新页面。在新页面的加载事件上,执行你的 JS 函数。
    • 它不会返回新页面,我希望所有操作都发生在同一页面上,让我告诉你我需要的确切内容,点击提交后,我需要显示“正在加载...”,然后 servlet 被命中,任务完成,然后我需要将显示 Loading 的相同标签更改为“Finished”(使用 innerHtml 概念)。
    • 好的,所以你回到了我原来的答案。您必须更改您的页面,以便不提交表单(这必须涉及页面重新加载)并使用 AJAX 提交表单。您可以将表单输入字段值传递给 url(我会更新我的答案),您的 servlet 可以从请求中获取它们,处理它们并返回。一旦请求完成,将执行 ajax done 函数。
    猜你喜欢
    • 1970-01-01
    • 2015-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-24
    • 2021-06-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多