var result = null;
function setSendButton(userInput){
var clicked=userInput;
result = "<%=mb.myMethod(clicked)%>";
}
其中myMethod
是使用jsp标记调用的java方法。它被定义为:
public boolean myMethod(String isClicked){
if(isClicked.equals("true")){
return true;
}else{
return false;
}
}
由于某种原因,我得到了一个JSP编译错误,该错误编译了未传递var clicked
值为“true”的代码,并且clicked
在JSP编译期间成为字符串,如下所示:{{1}而不是mb.myMethod(clicked)
答案 0 :(得分:1)
它不能那样工作。
JSP中的Java代码在发送到客户端浏览器之前在服务器端进行翻译和编译。只有在JSP被翻译并编译成HTML文件并发送到客户端浏览器之后,javascript变量才可用。那时,mb.myMethod
已经在服务器端执行了。
简而言之,您可以将java代码传递给js赋值,但不能反过来。
答案 1 :(得分:0)
这不会起作用吗?
var result = null;
function setSendButton(){
result = "<%=mb.myMethod(true)%>";
}