1
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 编译期间变成了一个字符串,如下所示:mb.myMethod(clicked)而不是mb.myMethod("true")

4

2 回答 2

1

它不能那样工作。JSP 中的 Java 代码在发送到客户端浏览器之前在服务器端进行翻译和编译。只有在将 JSP 翻译并编译为 HTML 文件并发送到客户端浏览器后,javascript 变量才可用。那时, Themb.myMethod已经在服务器端执行了。

简而言之,您可以将 java 代码传递给 js 赋值,但不能反过来。

于 2012-09-21T15:01:28.720 回答
0

这不行吗?

var result = null;

function setSendButton(){
   result = "<%=mb.myMethod(true)%>";
}
于 2012-09-21T14:52:40.657 回答