【发布时间】:2011-01-26 17:28:56
【问题描述】:
我有一些问题如下:
如何在 JQUERY 代码中使用 JSP 变量/数组?在这里,我们拥有的 JQUERY 代码存储在单独的 .js 文件中,并且该文件包含在 JSP 文件中。
其实我想用JSP变量初始化JQUERY数组。 所以请指导我完成这个任务。
【问题讨论】:
标签: java javascript jquery jsp servlets
我有一些问题如下:
如何在 JQUERY 代码中使用 JSP 变量/数组?在这里,我们拥有的 JQUERY 代码存储在单独的 .js 文件中,并且该文件包含在 JSP 文件中。
其实我想用JSP变量初始化JQUERY数组。 所以请指导我完成这个任务。
【问题讨论】:
标签: java javascript jquery jsp servlets
在普通的旧 JSP 中
<script>
var someText = "<%= myBean.getText() %>";
</script>
使用 EL(表达式语言)
<script>
var someText = "${myBean.text}";
</script>
使用 Struts
<script>
var someText = '<bean:write name="myBean" property="text" />';
</script>
使用 JSTL
<script>
var someText = '<c:out value="${myBean.text}" />';
</script>
本质上,可以从 JSP 填充 Javascript 对象。不要忘记,scriptlet 和标签只是被渲染为 HTML/XHTML,所以 JS 不能与标签对话,反之亦然。
【讨论】:
<fmt /> 来处理此类含义,并远离“Plain Old JSP”。
fmt 标签库不关心 XSS。 c:out 和 fn:escapeXml 可以。
Java/JSP 在服务器机器的 webserver 中运行并生成 HTML/CSS/JS 代码。服务器机器向客户端机器发送 HTML/CSS/JS 代码。 HTML/CSS/JS 在客户端机器的网络浏览器中运行。右键页面查看源码,看不到任何Java/JSP代码。
JSP 是一种视图技术,它提供了用于编写 HTML/CSS/JS 的模板以及使用 taglibs/EL 与后端 Java 数据交互以控制页面流和访问数据的能力。
每当您想让 JavaScript 访问 Java/JSP 变量时,您只需编写一个 Java 变量就好像它是一个 JavaScript 变量。
<script>var foo = '${bean.foo}';</script>
就是一个很好的例子。请注意,JavaScript 本身需要这些引号,而不是 JSP/EL。假设${bean.foo}返回bar,那么生成的到达客户端的HTML/CSS/JS页面最终会是这样的:
<script>var foo = 'bar';</script>
当您想让 Java/JSP 访问 JavaScript 变量时,您需要做的就是让 JavaScript 触发 (XML)HTTP 请求。更多背景信息和示例可以在this article找到。
【讨论】:
你可以用这个 -
<input type="hidden" id="var1" value="<%=jspVar%>" />
然后在 jQuery 中使用 var1。
【讨论】:
不直接。您必须将其设置到页面中的某个位置。
<script>
var fromJsp = '${theVar}';
</script>
请注意,这对于复杂的对象可能会变得很棘手。也许 JSON 序列化可以成为你的朋友。
另请注意,这只是单向的。无法通过 JavaScript 设置 JSP 变量的值(因为 JavaScript 在 JSP 完成工作后运行客户端)。
【讨论】: