0

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

例如:

 <% String param = "hello";%>

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

生成的javascript是:

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

selectAllCheckBoxes(Hello),this);
4

3 回答 3

2

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

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

selectAllCheckBoxes('Hello', this);

whereHello应该作为 scriptlet 局部name变量的值获取(theparam是保留的变量名,你不应该自己使用它),那么你需要做

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);
于 2009-12-24T11:05:30.310 回答
1

也许您正在努力实现这一目标?

var myVar = '<%= (String)request.getParameter("tab") %>'; 
loadtabs(myVar);
于 2011-11-26T00:21:37.693 回答
1

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

<dmf:checkbox  name="checkbox"
   onclick = "<%= "selectAll(" + param + ")" %>" />
于 2009-12-24T10:55:48.227 回答