JSTL(JavaServer Pages Standard Tag Library)是JSP技术的一部分,用于简化JSP页面的开发。JavaScript是客户端脚本语言,运行在浏览器中。两者运行在不同的环境中(JSTL在服务器端,JavaScript在客户端),这导致直接交互存在限制。
虽然技术上可以实现,但不推荐,因为这需要页面回传:
<script>
var jsVar = "value";
document.cookie = "jsVar=" + jsVar;
</script>
<%-- 页面刷新后 --%>
<c:set var="jstlVar" value="${cookie.jsVar.value}" />
这是更常见的需求,也是合理的方式:
<c:set var="jstlVar" value="Hello from JSTL" />
<script>
var jsVar = "${jstlVar}"; // JSTL表达式在服务器端被替换
console.log(jsVar); // 输出: Hello from JSTL
</script>
<input type="hidden" id="hiddenField" value="${jstlVar}" />
<script>
var jsVar = document.getElementById("hiddenField").value;
</script>
<script>
fetch('/getData')
.then(response => response.json())
.then(data => {
console.log(data.jstlData);
});
</script>
问题:JavaScript获取的JSTL变量值为空或未定义
问题:特殊字符导致JavaScript错误
fn:escapeXml
或JSON序列化没有搜到相关的文章