在JSP编译期间阻止javascript函数中的字符串连接

时间:2012-09-21 14:46:15

标签: java javascript jsp

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)

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

这不会起作用吗?

var result = null;

function setSendButton(){
   result = "<%=mb.myMethod(true)%>";
}