2009-12-24 53 views
0

你好,我需要在一个jsp内部的标签内部的JavaScript调用中输出一个java变量!打印一个java scriptlet变量,就好像它是一个JavaScript变量

例如:

<% String param = "hello";%> 

<dmf:checkbox name="checkbox" 
    onclick = "selectAll(<%=param%>)" 
/> 

产生的JavaScript是:

selectAll(<%=param%>),this);,但实际上我想是这样

selectAllCheckBoxes(Hello),this); 

回答

2

这并不是逃避。这只是打印一个scriptlet变量,就好像它是一个JavaScript变量。

此外,您的示例很混乱,它们不匹配,Javascript代码在语法上无效。我至少可以知道JavaScript字符串变量将被引号包围。如果你想与

selectAllCheckBoxes('Hello', this); 

其中Hello应该作为小脚本本地name变量的值来获得最终(的param是一个保留的变量名,你不应该把自己使用它),那么你需要做

selectAllCheckBoxes('<%= name %>', this); 

以同样的方式,如果你想与

onclick="selectAll('Hello')" 

你需要做的

落得
onclick="selectAll('<%= name %>')" 

也就是说,我强烈建议你停止使用十多年来一直不鼓励的老式scriptlet。 JSP程序员被推荐使用taglib和EL来使JSP代码更加干净和健壮,并且更易于维护。您可以使用诸如JSTL之类的taglib来控制JSP页面中的流程,并且您可以使用EL来访问“后端”数据。您的示例可以替换为:

<c:set var="name" value="Hello" /> 

... 

selectAllCheckBoxes('${name}', this); 
+0

好的提示将调查JSTL – Ayrad 2009-12-24 11:18:09

1

生成一个小脚本全属性值,就像这样:

<dmf:checkbox name="checkbox" 
    onclick = "<%= "selectAll(" + param + ")" %>" /> 
1

也许您正试图实现此目的?

var myVar = '<%= (String)request.getParameter("tab") %>'; 
loadtabs(myVar);