如何从 JSP 访问 JavaScript 中的 Java 对象 [重复]

2023-12-28

我在 JSP 中有一个下拉框,列出了一个 Java 对象(通过 MVC 控制器的 addAttribute 访问该对象)。现在,从下拉框中选择一个选项时,我想在 div 中显示所选员工的其他详细信息(例如 - ${employee.employeeCV}、${employee.employeeName})。我有一个 JavaScript 函数(displayCV())。但我不知道该怎么做。

JSP -

<c:forEach items="${employees}" var="employee">
  <option value="${employee.id}" onclick="displayCV();">
    ${employee.employeeName}
  </option>
</c:forEach>

<b>CV:</b>

JavaScript

function displayCV() {
    var valueSelected = $('#employeeList').val();
    var div = $('#candidateDiv');
}

我怎样才能做到这一点?


您无法直接从 JavaScript 访问 Java 类。您必须在 JavaScript(客户端)和 Java(服务器)之间使用某种 Web 服务通信。您可以利用 onchange 事件,该事件将向服务器发送请求以返回 XML/JSON,您可以对其进行解析以获取数据(我看到您正在使用 jQuery,并且它已经具有 parseJSON 方法)并更新相应的节点在 DOM 中。

不过,另一种更简单的方法对多用户不友好(因为它无法检测更新),即将 Java 对象“转换”为 JavaScript 并使用该对象更新数据(仍然使用 onchange)。就像是:

// This is JavaScript code written in the JSP
var employees = {
  <c:forEach items="${employees}" var="employee">
  "${employee.id}": {
    name:"${employee.employeeName}",
    cv:"${employee.employeeCV}",
  },
  </c:forEach>
}

现在,当 JSP 解析它时,它会生成,例如:

var employees = {
  "1": {
    name:"foo",
    cv:"cv1",
  },
  "2": {
    name:"bar",
    cv:"cv2",
  },
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从 JSP 访问 JavaScript 中的 Java 对象 [重复] 的相关文章