如何将java Array复制到javascript数组中?

时间:2015-06-19 11:34:09

标签: java javascript arrays jsp jsp-tags

我有一个.jsp页面,我在其中使用点击JavaScript函数进行进一步验证和其他处理。现在我已经在jsp scriptlets中创建了一个数组,如何在调用submit按钮时调用这个被调用的JavaScript函数?我试过这样的事情:

var jsArray = <%=lineArray%>;

但那并没有成功 事实上,在上面的scriptlet之后,函数没有被调用。那么如何将这个java数组复制到JavaScript数组中呢?

2 个答案:

答案 0 :(得分:1)

尝试这样的事情:

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

var jsArray = [ 
  <c:forEach var="item" items="${lineArray}">
   <c:out value="${item}"/>,
  </c:forEach>
];

这将生成javascript数组变量jsArray并将Java lineArray值放入其中。如果那就是你需要做的。

答案 1 :(得分:0)

实际上你无法直接将Java对象(服务器)访问“JavaScript”(客户端)。您必须创建服务(Ajax调用)并从服务器获取响应对象........

但你可以这样做......

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

 var jsArray = {
      <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",
  },
}

然后你可以根据需要修改js对象......

检查以下链接进一步说明....

How to access a java object in javascript from JSP?