gpt4 book ai didi

javascript - 通过 javaScript 将值传递给 JSP

转载 作者:行者123 更新时间:2023-11-30 23:43:03 26 4
gpt4 key购买 nike

boolean canModify   = UTIL.hasSecurity("PFTMODFY") && something;

function name() {
I need to pass a value false to something when the page loads.
}
window.onLoad = name

如何在页面加载时将值从 JavaScript 传递到 JSP

最佳答案

认为你的意思是相反的,让服务器端代码输出一个JavaScript在页面加载时可以看到的值。

< s>

从服务器代码 (JSP) 发送到客户端代码 (JavaScript)

就像输出其他内容一样输出它,例如:

<%
boolean canModify = UTIL.hasSecurity("PFTMODFY") && something;
%>
var canModify = <%=canModify%>;
// ^ ^
// | +-- server-side variable
// +-- client-side variable

当JSP实际运行时,返回给客户端的脚本代码将简单为

var canModify = false;

var canModify = true;

这是一个 bool 值;如果你需要输出一个字符串,你需要在它周围加上引号,并小心转义其中应该在 JavaScript 文字字符串中转义的任何内容(例如反斜杠,以及你使用的任何引号字符) )。

从客户端代码 (JavaScript) 发送到服务器代码 (JSP)

但是,如果您真的意味着您想在页面加载时将值发送回服务器(这看起来很奇怪,但是嘿),则必须使用 Ajax为了那个原因。如果您打算做 Ajax 的事情,我建议使用像 jQuery 这样的库。 , Closure , Prototype , YUI ,或any of several others因为它们可以大大简化您的流程。例如,使用 jQuery,此客户端代码将一个值发送回服务器:

jQuery.get("/your/page/url", {"name": "value"});

(或 jQuery.post 用于进行更改的内容)。使用原型(prototype),它会是:

new Ajax.Request("/your/page/url", {
method: "GET", // or, of couse, "POST"
parameters: {"name": "value"}
});

我上面提到的所有库都具有类似的易于使用的机制来将数据发送到服务器。请注意,此机制受 Same Origin Policy 的约束。 .

当然,您不需要需要库来实现此目的 - 库可以做的任何事情,您都可以自己做。我上面列出的功能都是 XMLHttpRequest 对象的包装器( WikipediaMSDNMDC )。请参阅链接的资源以获取示例。

非 Ajax 黑客

我不应该说您需要为此使用 Ajax,更像是您想要。 :-) 如果出于某种原因,您确实不想使用 Ajax,您可以通过使用 JavaScript 向页面添加一些内容来触发从服务器的检索,然后将您的值作为标志包含在该请求中。例如:

var link = document.createElement('link');
link.setAttribute('rel', 'stylesheet');
link.src = "/path/to/jsp?name=" + encodeURIComponent(value);
document.getElementsByTagName('head')[0].appendChild(link);

您的 JSP 将对查询字符串执行所需的任何操作,然后返回样式表中有效的任何内容(例如 /* */)。或者,如果您不想使用样式表链接,请使用 img 标记并返回透明像素;等等

但是我不会那样做。我会使用 Ajax。

关于javascript - 通过 javaScript 将值传递给 JSP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4021474/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com