2010-03-12 28 views
5

我有一些问题,内容如下:是否可以使用jsp变量值来初始化JQUERY变量?

  1. 我如何使用jQuery代码的JSP变量/数组?在这里,我们拥有的JQUERY代码存储在单独的.js文件中,并且该文件包含在JSP文件中。

  2. 其实我想用JSP变量初始化JQUERY数组。 所以请指导我完成这项任务。

回答

17

在普通老式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对象。不要忘记,脚本和标签只是作为HTML/XHTML呈现,所以JS无法与标签交谈,反之亦然。

+2

第二个示例不要使用JSTL,它被称为EL(表达式语言) – BalusC

+0

感谢BalusC ...我正在寻找那个词....我已经更新了它... –

+0

但EL是JSTL的一部分 - http: //www.jcp.org/aboutJava/communityprocess/first/jsr052(附录A):) –

0

不是直接。您必须将其设置到某个地方的页面中。

<script> 
    var fromJsp = '${theVar}'; 
</script> 

请注意,对于复杂的对象,这可能会变得棘手。也许JSON序列化可以成为你的朋友。

另请注意,这只是单向的。从JavaScript中设置JSP变量的值是不可能的(因为在JSP完成其工作后JavaScript运行客户端)。

+0

注意XSS的含义:String theVar =“hello”; alert(\“XSS \”); //“ –

0

您可以使用此 -

<input type="hidden" id="var1" value="<%=jspVar%>" />

然后在jQuery的使用VAR1。

+0

假设变量是一个字符串并且不包含”字符 – Quentin

1

Java/JSP在服务器机器的web服务器上运行并生成HTML/CSS/JS代码。服务器机器将HTML/CSS/JS代码发送到客户机。 HTML/CSS/JS在客户机的webbrowser中运行。右击页面并查看源代码,您看不到任何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中找到。