一尘不染

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

jsp

您好,我需要在jsp内的标签内的javascript调用内输出java变量!

例如:

 <% String param = "hello";%>

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

生成的javascript是:

selectAll(<%=param%>),this); 但我实际上想要这样的东西

selectAllCheckBoxes(Hello),this);

阅读 177

收藏
2020-06-08

共1个答案

一尘不染

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

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

selectAllCheckBoxes('Hello', this);

Hello应该在哪里获取作为scriptlet局部name变量的值(这param是保留变量名,您不应该自己使用它),那么您需要

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

同样,如果您想结束

onclick="selectAll('Hello')"

你需要做

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

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

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

...

selectAllCheckBoxes('${name}', this);
2020-06-08