当前位置 : 主页 > 编程语言 > java >

如何从JSP访问javascript中的java对象?

来源:互联网 收集:自由互联 发布时间:2021-06-25
参见英文答案 Access Java / Servlet / JSP / JSTL / EL variables in JavaScript3个 我在JSP中有一个下拉框,列出了java对象(通过MVC控制器addAttribute访问对象).现在,在从下拉框中选择一个选项时,我想在di
参见英文答案 > Access Java / Servlet / JSP / JSTL / EL variables in JavaScript                                    3个
我在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",
  },
}
网友评论