【发布时间】:2012-10-24 16:39:41
【问题描述】:
我希望传递一个 servlet 变量 myVar,它被传递到 JSP 页面,并将它传递给 JavaScript。 JavaScript 是包含在 JSP 页面中的外部 JavaScript。
我有一个调用 JavaScript 函数的按钮,但是我无法传递通过 servlet 传递到 JSP 页面的任何变量。该按钮不是表单的一部分。
我已经尝试在 JavaScript 中调用一个函数:
var x = '<%=myVar%>';
与
var x = '${myVar}';
与
var x = '<%= (String)request.getParameter("myVar") %>';
但是,x 始终是我输入的字符串。
我没有使用 AJAX 或 JQuery。有什么想法吗?
示例代码是一个简化版本:(所以按钮实际上是一个下拉菜单,当我更改值时会调用js,但是,我希望在changeCLass中调用不属于下拉菜单的其他变量)
Servlet 端:
request.setAttribute("otherVars","tests");
JSP:
<script type="text/javascript" src="external.js"></script>
<select name="vars" id="myVars" onchange="changeClass(this)">
<option value='1' selected="selected">1</option>
</select>
JSP 中包含的 external.js:
function changeClass(newVarX) {
var newVarId =newVarX.value;
var tID = '${otherVars}';
alert(newVarId + " " + tID);
}
输出: 1 $(其他变量}
但输出应该是: 1 次测试
【问题讨论】:
-
这段代码是取自外部文件吗?
-
@user1798546 简单的方法是创建一个隐藏字段来存储值并从那里获取它。另一种方法是将变量作为参数传递给js函数
<button onclick='someFunction(<%= (String)request.getParameter("myVar") %>)'> Call function</button> -
最好解释一下你的应用程序在atm的行为(带有代码示例),以便更好地理解并提供更好的解决方案
-
“JavaScript 是包含在 JSP 页面中的外部 javascript” - 您能否发布 JSP 以显示您如何包含此文件?
-
BTW ${otherVars} 不能单独工作 - 您需要使用 c:out 或类似的标签,例如
标签: javascript jsp variables servlets