如何从servlet调用JavaScript的功能

时间:2012-04-21 11:16:14

标签: javascript servlets

我是网络开发的新手。我有一个外部JavaScript文件,它有一个显示的功能 带有错误详细信息的提示。我需要将错误消息传递给该函数。我在servlet中编写了控制器。

如何从我的servlet调用该JavaScript文件的功能。

3 个答案:

答案 0 :(得分:5)

无法从servlet调用java脚本函数。相反,您可以使用

打印JavaScript代码

response.getOutputStream().println("[javascript code]");

进入浏览器,然后javascript函数将在浏览器中执行。

答案 1 :(得分:2)

您可以使用以下方法实现类似的行为。在发送响应时,您可以提供JS事件。

PrintWriter out = response.getWriter();
out.println("<tr><td><input type='button' name='Button' value='Search' onclick=\"searchRecord('"+ argument + "');\"></td></tr>");

因此,当您单击“搜索”按钮时,将调用JS的搜索记录方法。

答案 2 :(得分:2)

您需要了解servlet在Web服务器中运行,而不是在webbrowser中运行,并且JS在Web浏览器中运行,而不是在Web服务器中运行。通常的做法是让servlet将请求转发给JSP文件,该文件又生成HTML / CSS / JS代码,由Web服务器发送到Web浏览器。最终,所有HTML / CSS / JS代码都在webbrowser中执行。

要实现您的(有点奇怪的,tbh)功能要求,只需让转发的JSP有条件地呈现特定的脚本调用。例如,如下JSTL <c:if>,假设您已收集并以JSON数组格式将错误设置为${errors}

<c:if test="${not empty errors}">
    <script>displayErrors(errors);</script>
</c:if>

或者让JSP将其指定为JS变量,让JS进一步处理它。类似的东西:

<script>
    var errors = ${errors};

    if (errors.length) {
        displayErrors(errors);
    }
</script>

至于要求很奇怪,如果你被迫使用JS来显示消息,那只能意味着你正在使用alert()或其他东西。这是90年代,不是用户友好的。让JSP生成相应的HTML,它们放在输入字段旁边,或放在表单顶部的列表中。 Our servlets wiki page有一个你好世界的例子就是这样的。