调用 Javascript 文件中的方法

发布于 2024-10-19 00:15:29 字数 133 浏览 0 评论 0原文

在基于 Struts 2 的应用程序中,我有 Java 类和 JSP。在 JSP 中我包含了 Javascript 文件。
我有一个返回字符串的 Java 方法。
我想在 Javascript 文件中调用这个方法。
我该怎么做?

in a Struts 2 based application i have Java classes and JSPs. in the JSPs i have included Javascript files.
i have a Java method which return a string.
i want to call this method in the Javascript files.
how can I do this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

睫毛上残留的泪 2024-10-26 00:15:29

Struts 是一个服务器端框架,因此您的 Java 运行在您的服务器上。

JavaScript 通常在浏览器中运行(听起来您没有涉及任何 SSJS 解决方案)。

因此:你不能。这些程序运行在不同的计算机上,无法直接交互。

您需要发出一个新的 HTTP 请求,包括可以检索的数据(例如在查询字符串中)。您可以通过设置 location、生成

并使用 XMLHttpRequest< 调用其 submit() 方法来完成此操作/code> 对象,动态添加

Struts is a server side framework, so your Java is running on your server.

JavaScript is usually found running in the browser (and it doesn't sound like you have involved any SSJS solution).

Therefore: You can't. The programs are running on different computers and can't interact directly.

You would need to issue a new HTTP request, including the data somewhere it can be retrieved (e.g. in a query string). You could do this by setting location, generating a <form> and calling its submit() method, using the XMLHttpRequest object, dynamically adding a <script> element with the src set appropriately and various other approaches.

请叫√我孤独 2024-10-26 00:15:29

您可以将 Java/JSP 字符串作为 JS 变量直接写入页面正文中。 (如果我理解正确的话,但我不确定我是否理解)。

You can write the Java/JSP string directly into the body of the page as a JS variable. (If I understand you correctly, and I am not sure I do).

宁愿没拥抱 2024-10-26 00:15:29

你的意思是两件事之一。

您想在渲染时调用该方法,并将输出包含在 Javascript 中。为此,请使用 JSP 调用该方法。

或者您想在“运行时”调用该方法。如果是这样,您需要从浏览器执行 ajax 调用,并以这种方式调用该方法。您可以使用不同的技术(想到 jax-rs)。也许struts已经有一些东西了;对此不太确定。基本上,您向 servlet 发出 http 请求。 servlet 调用您的方法并返回响应。然后你的 javascript 处理响应。

You mean either one of two things.

Either you want to call the method at render time, and include the output in your Javascript. For that, call the method using JSP.

Or you want to call the method at 'runtime'. If so, you need to do an ajax call from the browser, and call the method that way. You could use different techniques for that (jax-rs comes to mind). Maybe struts already has something; not sure about that. Basically, you make an http request towards a servlet. The servlet calls your method and returns the response. Then your javascript handles the response.

女中豪杰 2024-10-26 00:15:29

您的 JSP 中的意思是类似以下内容吗?

<script type="text/javascript">
    <s:property value="JSMethodName"/>();
<script>

我的意思是上面的代码将调用一次特定的 JS 方法...您甚至可以将 标记包装在迭代器中以调用许多方法...可能更好地修改上面是页面加载后的情况。

如果上述还不够,您可以使用 ajax 方法动态返回 JS 方法列表并调用它们...为此,我建议使用 jquery 和 S2 JSON 插件。

Do you mean something like the following in your JSP?

<script type="text/javascript">
    <s:property value="JSMethodName"/>();
<script>

I mean the above will call a particular JS method once... you could even wrap that <s:property> tag in an iterator to call a number of methods... probably better to modify the above for after page load.

If the above is not sufficient you can use ajax methods to return a list of JS methods dynamically and invoke them... for that I would advise using the jquery and the S2 JSON plugin.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文