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