【问题标题】:Java String in Javascript functionJavascript函数中的Java字符串
【发布时间】:2009-12-09 16:18:20
【问题描述】:

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

这里是一些示例代码

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

【问题讨论】:

  • 你是如何使用 JSTL 和响应属性传递它的?请出示代码。
  • 您是否在来自 javascript 的响应中传递值,例如 json 响应? Javascript 无法理解 Java,但它可以理解字符串。
  • Java是运行在服务端还是客户端?

标签: java javascript


【解决方案1】:

尝试改变

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

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

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

【讨论】:

  • 成功了。优秀的。谢谢。
【解决方案2】:

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

这是否意味着:

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

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

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

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

【讨论】:

  • 是的,第一点你是对的。这就是我正在做的事情。这是一些示例代码 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。
  • 您能否将其添加到您的原始帖子中(使用编辑按钮)并正确格式化,以便我可以真正阅读它
  • 唐,我检查了它的值,它肯定不是空的。
  • 老实说,我认为您应该避免这种代码生成。正如您在上面看到的,很难看到 JS 代码中实际发生的事情
猜你喜欢
  • 2011-08-25
  • 2014-02-22
  • 1970-01-01
  • 2011-05-07
  • 2011-10-14
  • 1970-01-01
  • 2011-03-30
  • 2010-11-12
  • 1970-01-01
相关资源
最近更新 更多