在Javascript中使用jstl

1 javascript jstl

在我的jsp页面中,我有:

<form:select path="index" id="sIndex" onchange="showDetails()">
    <form:options items="${smth}" itemLabel="name" itemValue="index"/>
</form:select>
Run Code Online (Sandbox Code Playgroud)

在我的javascript函数中:

 *function showDetails() {
        var sIndex=document.getElementById("sIndex");
        var index=sIndex[sIndex.selectedIndex].value;
        var name = '${smth[index].name}';
        var address = '${smth[index].address}';
        var message = "<table><tr><td>Name:</td><td>" + name + "</td></tr>";
        message = message + "<tr><td>Address:</td><td>" + address + "</td></tr>"
        message = message + "</table>"
        document.getElementById("candDetails").innerHTML = message;
    }*
Run Code Online (Sandbox Code Playgroud)

并且它不需要$ {}中的索引,但是如果我使用alert(index)它会识别它.

Bal*_*usC 5

Java/JSP/JSTL在服务器端运行,生成HTML/CSS/JS输出并将其发送到客户端.HTML/CSS/JS在客户端运行,而不是在服务器端运行,正如您所期望的那样.在浏览器中打开页面并执行"查看源".你看到了吗?

Javascript只能在客户端看到HTML DOM树并且可以访问它.您需要从HTML DOM树中获取名称和地址.您已在选项元素中使用该名称,但该地址无法使用.您可以使用JSTL生成Javascript数组变量,以便Javascript代码可以进一步使用它.

要了解有关Java/JSP和Javascript之间隔离墙的更多信息,您可能会发现本文很有用.