JSP Java 内联函数调用退出 JavaScript



我正在尝试调用 jsp 页面内的 javascript 中的 java 类函数。我已经导入了它...

<%@ page language="java" import="myPackage.*"%>

我已经构建了类

<% 
    myClass myJavaInstance =new myClass(); 
    System.out.println("this worked!"); 
%> 

我有一些javaScript,里面有一条警告消息

<script>
    alert("hello ");
</script>

但是当我添加这一行时...

var thisHere = <%= myJavaInstance.getName() %>

在警报之前,它不会显示

<script>
    var thisHere = <%= myJavaInstance.getName() %>
    alert("hello ");
</script>

如果我把它放在警报之后,它会显示

<script>
    alert("hello ");
    var thisHere = <%= myJavaInstance.getName() %>
</script>

我知道该方法被调用,因为我在其中放了一个 println。我在这里错过了什么?它应该可以工作吗?

myJavaInstance.getName()的结果可能是类似 "Nikos" 的字符串。在 JS 中呈现的输出将是:

var thisHere = Nikos

这不是有效的JS(Nikos是未定义的)。所以用引号括起来:

var thisHere = "<%= myJavaInstance.getName() %>";

此外,您应该对字符串中找到的任何引号进行转义。

使用控制台。看起来你有一个语法错误,你需要在javascript中的字符串周围加上引号。当脚本出错时,它会停止执行脚本的其余部分。这就是为什么当您将其放在警报之前并且它出错时,它不会执行警报,但是如果您将其放在警报之后然后出错。

<script>
    var thisHere = "<%= myJavaInstance.getName() %>"
    alert("hello " + thisHere);  
</script>

最新更新