我试图在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。 我在这里错过了什么?它应该工作正常吗?
答案 0 :(得分:3)
myJavaInstance.getName()
的结果可能是"Nikos"
之类的字符串。 JS中的渲染输出将是:
var thisHere = Nikos
哪个是无效的JS(Nikos未定义)。所以用引号括起来:
var thisHere = "<%= myJavaInstance.getName() %>";
此外,您应该转义字符串以查找其中的任何引号。
答案 1 :(得分:1)
使用控制台。看起来你有语法错误,你需要在javascript中的字符串周围加引号。当脚本出错时,它会停止执行脚本的其余部分。这就是为什么当你把它放在警报之前并且它出错时它不会执行警报,但是如果你把它放在它之后发出警报然后就出错了。
<script>
var thisHere = "<%= myJavaInstance.getName() %>"
alert("hello " + thisHere);
</script>