Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Javascript文件中调用方法_Java_Javascript_Jsp_Struts2 - Fatal编程技术网

在Javascript文件中调用方法

在Javascript文件中调用方法,java,javascript,jsp,struts2,Java,Javascript,Jsp,Struts2,在基于Struts 2的应用程序中,我有Java类和JSP。在JSP中,我包含了Javascript文件。 我有一个返回字符串的Java方法。 我想在Javascript文件中调用此方法。 如何实现这一点?Struts是一个服务器端框架,因此Java正在服务器上运行 JavaScript通常在浏览器中运行(而且听起来您没有涉及任何SSJS解决方案) 因此:你不能。这些程序运行在不同的计算机上,不能直接交互 您需要发出一个新的HTTP请求,包括可以检索到的数据(例如,在查询字符串中)。您可以通过设

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

如何实现这一点?

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

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

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


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

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

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


您需要发出一个新的HTTP请求,包括可以检索到的数据(例如,在查询字符串中)。您可以通过设置
location
,生成
并调用其
submit()
方法,使用
XMLHttpRequest
对象,通过适当设置
src
和各种其他方法动态添加
元素。

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

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

你指的是两件事中的任何一件

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


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

您指的是两件事中的任何一件

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


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

您的JSP中是否有如下内容

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

();
我的意思是上面将调用一个特定的JS方法一次。。。您甚至可以将
标记包装在迭代器中,以调用许多方法。。。在页面加载之后,最好修改上面的内容


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

您的JSP中是否有以下内容

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

();
我的意思是上面将调用一个特定的JS方法一次。。。您甚至可以将
标记包装在迭代器中,以调用许多方法。。。在页面加载之后,最好修改上面的内容


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

将Java方法导出为http请求并从JS发出请求请在每个句子的开头使用大写字母,对于像JSP这样的首字母缩略词,以及对于“I”这个词的任何使用。那篇文章读起来很痛苦。另一个技巧:不要忘记在“我是如何做到这一点的?”等问题上添加问号(?),将Java方法导出为http请求并从JS发出请求请在每个句子的开头使用大写字母,对于JSP等首字母缩略词,以及对“I”的任何使用。那篇文章读起来很痛苦。另一个提示:不要忘记在诸如“我如何做到这一点?”之类的问题上添加问号(?),我想验证一些文本字段(例如,文本字段不能为空)。我要验证的文本字段来自java方法中的字符串值。这并没有改变我刚才解释的任何限制。您可能应该尝试找出如何将该信息与页面的其余部分一起发送到浏览器。我想验证某些文本字段(例如,文本字段不能为空)。我要验证的文本字段来自java方法中的字符串值。这并没有改变我刚才解释的任何限制。您可能应该尝试找出如何将该信息与页面的其余部分一起发送到浏览器。是的,请保持简单<代码>var jsvariable='${javavariable}'。我在js文件中使用了此代码:var collegename='${collegename}';关于collegename在action类中具有getter/setter的警报(“collegename”+collegename)。但它显示colloge名称未定义,是的,保持简单<代码>var jsvariable='${javavariable}'。我在js文件中使用了此代码:var collegename='${collegename}';关于collegename在action类中具有getter/setter的警报(“collegename”+collegename)。但它显示colloge名称未定义,