在jsp scriptlet中获取javascript变量值

时间:2014-04-07 20:18:30

标签: java javascript jsp el

我有一个场景,我需要将javascript varibable与jsp页面的scriptlet中的java对象进行比较。如何在jsp scriptlet中获取javascript变量或以其他方式也适用于我(在javascript中获取arraylist对象值)。

4 个答案:

答案 0 :(得分:5)

有两种方法可以将javascript变量值分配给jsp scriptlet。

第一种方式 Demo1.jsp

<script>
    var name = "Gautam";
</script>
<%
    String str = "<script>document.writeln(name)</script>";
    out.println("value: " + str);
%>

第二种方式 Demo2.jsp

<html>
<script>
    function call() 
    {
        var name = "Gautam";
        window.location.replace("Demo2.jsp?name=" + name);
    }
</script>
<input type="button" value="Get" onclick='call()'>
<%
    String name = request.getParameter("name");
    if (name != null) 
    {
        out.println(name);
    }
%>
</html>

答案 1 :(得分:-1)

如果您需要JavaScript中的服务器变量,请使用表达式语言(假设此变量存储为请求,会话,应用程序或页面属性):

<%@taglib uri="http://example.com/functions" prefix="f" %>

<!-- ... -->

function showValues(str) {
    var empListLength = ${empty empList ? 0 : fn:length(empList)};
}

如果你需要在scriptlet中使用JavaScript变量,那你就不幸了,这是不可能的。从外部资源获取变量的唯一方法是作为请求参数。


我直接使用scriptlet省略了答案,因为its usage is highly discouraged

答案 2 :(得分:-1)

如果您需要JavaScript中服务器的变量,请使用Expression Language(假设此变量存储为请求,会话,应用程序或页面属性):

如果您需要JavaScript中的scriptlet变量,则无法进行。{p>从外部资源获取变量的唯一方法是作为请求参数

答案 3 :(得分:-2)

Javascript在浏览器中运行,JSP在服务器上运行。使用scriptlet声明java脚本变量,然后在浏览器上进行比较:

var x =&lt;%= str%&gt;

然后你可以在执行javascript时在浏览器中进行比较。除了那些Scriptlet不知道JavaScript中的任何东西,因为它必须在broswer中运行,到那时,scriptlet已经被执行并转换为html,javascript或css。