打印java scriptlet变量,就好像它是一个JavaScript变量一样

时间:2009-12-24 10:52:05

标签: java javascript jsp jsp-tags

你好我需要在jsp!

内的标签内的javascript调用中输出一个java变量

例如:

 <% String param = "hello";%>

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

生成的javascript是:

selectAll(<%=param%>),this);但我真的想要像

这样的东西
selectAllCheckBoxes(Hello),this);

3 个答案:

答案 0 :(得分:2)

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

此外,您的示例令人困惑,它们彼此不匹配,并且Javascript代码在语法上无效。我至少可以告诉JavaScript字符串变量被引号括起来。如果你想结束

selectAllCheckBoxes('Hello', this);

其中Hello应该作为scriptlet本地name变量的值获取(param是保留变量名,你不应该自己使用它),那么你需要做

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

以同样的方式,如果你想结束

onclick="selectAll('Hello')"

你需要做

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

那就是说,我强烈建议你停止使用十多年来不鼓励使用的旧式小脚本。建议JSP程序员仅使用taglib和EL来使JSP代码更干净,更健壮,更易于维护。您可以使用JSTL之类的标记库来控制JSP页面中的流,您可以使用EL来访问“后端”数据。您的示例可以替换为:

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

...

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

答案 1 :(得分:1)

使用scriptlet生成整个属性值,如下所示:

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

答案 2 :(得分:1)

也许你正在努力实现这个目标?

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