Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/376.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字符串_Java_Javascript - Fatal编程技术网

Javascript函数中的Java字符串

Javascript函数中的Java字符串,java,javascript,Java,Javascript,我想把一个Java字符串变量传递给我在Java代码中调用的Javascript函数。不知何故,字符串的值保持为null。有没有办法做到这一点 下面是一些示例代码 cb.set(CheckBox.ONCLICK,"displayCB(" + e.getFormName() + ",document.Profile.UniqueForm"+"_TestOpt)"); 所以在上面的代码行中,我在生成的javascript代码中调用displayCB javascript函数,而displayCB函数

我想把一个Java字符串变量传递给我在Java代码中调用的Javascript函数。不知何故,字符串的值保持为null。有没有办法做到这一点

下面是一些示例代码

cb.set(CheckBox.ONCLICK,"displayCB(" + e.getFormName() + ",document.Profile.UniqueForm"+"_TestOpt)");
所以在上面的代码行中,我在生成的javascript代码中调用displayCB javascript函数,而displayCB函数如下所示:

sc.add("function displayCB(formname,field){"); sc.add("var str = formname + 'TestOption'"); ..
当我通过firebug进行调试时,我得到的str值为null

将Java字符串变量传递给Javascript函数

这是否意味着:

  • 您正在使用JSP(服务器端)呈现传递给在客户端执行的JavaScript代码的值。这并不是Java和JavaScript之间的真正调用,更像是用Java生成JavaScript代码

  • 您实际上是在从Java调用JavaScript,即在JVM中使用JS运行时(Rhino?)

一旦你澄清了这一点,我将尽力进一步帮助你。另外,请出示相关代码

更新: 似乎
str
为null的唯一可能原因是yout JS函数的
formname
参数为null。为该参数传递的值(在JSP生成的代码中)是
e.getFormName()

试试换衣服

cb.set(CheckBox.ONCLICK,"displayCB(" + e.getFormName() + ",document.Profile.UniqueForm"+"_TestOpt)");


附加的单引号将使脚本将值视为字符串文字而不是变量名。

如何使用JSTL和响应属性传递它?请显示代码。您是否在javascript响应(如json响应)中传递值?Javascript不理解Java,但它理解字符串。Java是在服务器上运行还是在客户端上运行?是的,第一点你是对的。这就是我正在做的。下面是一些示例代码cb.set(CheckBox.ONCLICK,“displayCB(“+e.getFormName()+”,document.Profile.UniqueForm“+”\u TestOpt)”);因此,在上面的代码行中,我在生成的javascript代码中调用displayCB javascript函数,而displayCB的函数如下:sc.add(“function displayCB(formname,field){”);sc.add(“var str=formname+‘TestOption’”);……当我通过firebug进行调试时,我得到的str值为null。您能将其添加到原始帖子中吗(使用编辑按钮)并正确设置格式,以便我能够真正阅读它。我已经检查了它的值,它绝对不是空的。老实说,我认为您应该避免这种代码生成。正如您在上面所看到的,这使得很难看到JS代码中实际发生了什么。非常好。谢谢。
cb.set(CheckBox.ONCLICK,"displayCB('" + e.getFormName() + "',document.Profile.UniqueForm"+"_TestOpt)");