我正在尝试调用 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>