Java 可以使用jsp变量值初始化JQUERY变量吗?

Java 可以使用jsp变量值初始化JQUERY变量吗?,java,javascript,jquery,jsp,servlets,Java,Javascript,Jquery,Jsp,Servlets,我有以下几个问题: 如何在JQUERY代码中使用JSP变量/数组?这里,我们所有的JQUERY代码都存储在单独的.js文件中,该文件包含在JSP文件中 实际上,我想用JSP变量初始化JQUERY数组。 所以请引导我完成这项任务 不直接。你必须把它放在页面的某个地方 <script> var fromJsp = '${theVar}'; </script> var fromJsp='${theVar}'; 请注意,对于复杂对象,这可能会变得棘手。也许JSON序列

我有以下几个问题:

  • 如何在JQUERY代码中使用JSP变量/数组?这里,我们所有的JQUERY代码都存储在单独的.js文件中,该文件包含在JSP文件中

  • 实际上,我想用JSP变量初始化JQUERY数组。 所以请引导我完成这项任务


  • 不直接。你必须把它放在页面的某个地方

    <script>
       var fromJsp = '${theVar}';
    </script>
    
    
    var fromJsp='${theVar}';
    
    请注意,对于复杂对象,这可能会变得棘手。也许JSON序列化可以成为您的朋友

    还要注意,这是单向的。无法从JavaScript设置JSP变量的值(因为JavaScript在JSP完成其工作后运行客户端)。

    您可以使用以下方法-



    然后在jQuery中使用var1。

    在普通的旧JSP中使用

    <script>
      var someText = "<%= myBean.getText() %>";
    </script>
    
    
    var someText=“”;
    
    使用EL(表达语言)

    
    var someText=“${myBean.text}”;
    
    使用Struts

    <script>
      var someText = '<bean:write name="myBean" property="text" />';
    </script>
    
    
    var someText='';
    
    使用JSTL

    <script>
      var someText = '<c:out value="${myBean.text}" />';
    </script>
    
    
    var someText='';
    

    本质上,可以从JSP填充Javascript对象。不要忘记,Scriptlet和标记只是以HTML/XHTML的形式呈现,因此JS无法与标记对话,反之亦然。

    Java/JSP在服务器机器的webserver中运行,并生成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>
    

    每当您想让Java/JSP访问JavaScript变量时,您所需要做的就是让JavaScript触发(XML)HTTP请求。更多的背景信息和示例可以在中找到。

    注意XSS的含义:String theVar=“hello';alert(\“XSS\”);/“第二个示例根本不使用JSTL。它被称为EL(表达式语言)。但EL是JSTL的一部分(附录A):)当这个答案浮到顶部时,我将重复另一个答案中的注释,特别是对于“纯旧JSP”解决方案:注意XSS含义:String theVar=“hello';alert(\“XSS\”)/”真正的Olaf…因此最好使用JSTL
    来处理此类含义,而不要使用“普通的旧JSP”。呃,
    fmt
    标记库不关心XSS。
    c:out
    fn:escapeXml
    可以。假设变量是字符串,并且不包含“字符”。
    <script>var foo = '${bean.foo}';</script>
    
    <script>var foo = 'bar';</script>