在Javascript文件中调用方法

时间:2011-02-24 07:19:11

标签: java javascript jsp struts2

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

4 个答案:

答案 0 :(得分:2)

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

通常会在浏览器中运行JavaScript(并且听起来并不像您参与任何SSJS解决方案)。

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

您需要发出新的HTTP请求,包括可以检索的数据(例如,在查询字符串中)。您可以通过设置location,生成<form>并使用submit()对象调用其XMLHttpRequest方法,动态添加<script>元素来实现此目的{1}}适当地设置和各种其他方法。

答案 1 :(得分:1)

您可以将Java / JSP字符串作为JS变量直接写入页面主体。 (如果我理解正确,我不确定)。

答案 2 :(得分:0)

你的意思是两件事之一。

要么在渲染时调用方法,要在Javascript中包含输出。为此,请使用JSP调用该方法。

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

答案 3 :(得分:0)

您的JSP中是否包含以下内容?

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

我的意思是上面会调用一个特定的JS方法...你甚至可以在迭代器中包装<s:property>标签以调用许多方法...可能更好地修改上面的页面加载

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