可以从 javascript 发送 var 以在 JSTL c:set 中使用它吗?

Can send var from javascript to use it in JSTL c:set?

有什么方法可以让我在 JavaScript 函数中声明的变量传递给 JSTL 标签?

Javascript

var abc = document.getElementById('asdf').value;

这里是 JSP:

<input type="hidden" id="asdf" value="onetwothree" />

我想从 JavaScript

中声明 C:set
<c:set var="ex" value="${abc}" />

它的目的是获取值为 "onetwothree" 的 "ex" 变量。

抱歉,粗略的解释。谢谢

您无法从 Javascript 访问 JSTL 标签,因为这些标签只存在于服务器端(客户端它们被纯 HTML 取代)。

您始终可以发送 javascript var 作为请求参数,然后在服务器端使用它。

你用的是另一种方式。可以使用下面的代码

从 javascript 访问在 jsp 中声明的变量
<c:set var="ex" value="test" />
<script type="text/javascript">
    var abc = '${ex}';
</script>

但是你上面提到的其他方法是不可能的

如果您希望根据 input 框中提供的内容修改 DOM,那么我建议使用如下代码(在 javascript 中)

var abc = document.getElementById('asdf').value;

// assuming you want to print this value in a label
document.getElementById('mylabel').innerHTML = abc;

简而言之如果您想根据客户端输入对 DOM 进行任何更改,请通过 javascript 而不是依赖 [=31] =]