jsp java内联函数调用退出javascript

时间:2014-01-09 16:59:54

标签: java javascript jquery jsp web

我试图在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。 我在这里错过了什么?它应该工作正常吗?

2 个答案:

答案 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>