gpt4 book ai didi

javascript - 如何在 JavaScript 中从 EL 获取值

转载 作者:行者123 更新时间:2023-11-29 15:33:02 27 4
gpt4 key购买 nike

我将一个名为 student 的 map 对象传递给 jsp,student 有一些属性,如 NAME,SEX,ADDRESS,PHONE 等等。现在在 js 函数中我想从学生那里得到一些属性(property)。起初,我尝试这样编码,但它不起作用。如何修复我的代码?

//get the value from the key,I write "${student.NAME}" is OK.
function initSelection(key){
console.log("key:"+key+"value:"+("${student."+key+"}"));
}
$(function() {
initSelection("NAME");
initSelection("SEX");
initSelection("PHONE");
}

最佳答案

EL 代码在服务器端运行,而 Javascript 代码在浏览器中运行。

这一行是服务器端和客户端代码的混合,将无法正确运行:

console.log("key:"+key+"value:"+("${student."+key+"}")); 

这里${student.xxx}的表达式只会在客户端完成,因为key是一个JS变量,但需要在服务端运行才能得到期望值作为EL表达式。

如果你会用JSTL,又不想在服务端引入任何java对象转JSON字符串的库,这段代码可以改成:

var values = {};
<c:forEach var="item" items="${student}">
values['${item.key}'] = '${item.value}';
</c:forEach>

function initSelection(key){
console.log("key:"+key+"value:"+values[key]);
}
$(function() {
initSelection("NAME");
initSelection("SEX");
initSelection("PHONE");
});

在服务器端, map 内容用于生成填充 JS 变量“值”的 JS 源代码。在客户端,iniSelection() 函数可以获取“values”变量中的值。当学生 map 中没有使用单引号字符时,此代码有效。

关于javascript - 如何在 JavaScript 中从 EL 获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32546388/

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