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