You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将JavaScript变量的值赋值给JSP表达式?

核心逻辑说明

JSP属于服务端代码,在服务器渲染页面阶段就会执行完成,执行结束后才会把生成的HTML、JS内容返回给浏览器;而JavaScript是客户端代码,只有浏览器接收到页面资源后才会运行。两者运行的时间、环境完全隔离,JSP运行时JS定义的x变量根本不存在,所以不存在直接在JSP表达式中获取JS变量值的写法,必须通过请求传递的方式实现需求。


可行实现方案

  • 方案1:表单提交传递值
    你现有代码已经实现了把x赋值给id为bookid的表单元素,只需要给该元素加上name属性,表单提交后服务端JSP即可直接取值:
<!-- 给表单元素补充name属性 -->
<input type="hidden" id="bookid" name="bookid">

<script language="JavaScript" type="text/JavaScript">
    var x = 10;
    document.getElementById("bookid").value = x;
</script>

表单提交后,在处理请求的JSP中取值:

<% String value = request.getParameter("bookid"); %>
  • 方案2:异步无刷新传递值
    如果不需要刷新页面就能把JS值传给服务端处理,可以用AJAX请求传递参数:
var x = 10;
// 原生AJAX示例
var xhr = new XMLHttpRequest();
xhr.open("POST", "你的后端处理接口地址", true);
xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhr.send("bookid=" + x);

服务端对应处理接口的JSP同样通过request.getParameter("bookid")即可获取x的值。

  • 方案3:如果只是需要在当前页面用x的值做内容渲染,直接用JS操作DOM即可,不需要回传给JSP处理,属于客户端可直接完成的逻辑。

内容的提问来源于stack exchange,提问作者Nirodha Wickramarathna

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 09:18:02