使用jsp将数据从java发送到javascript

时间:2016-11-29 01:29:33

标签: javascript java jsp

完全是jsp的新手。在我的项目中,我需要从java发送一个arraylist /数组到javascript。

这是我在jsp中的java代码。

<%@ page import="java.util.List" %>
<%@ page import="java.util.ArrayList" %>
<% List<String> strList = new ArrayList<String>();
strList.add("one");
strList.add("two");
strList.add("three"); %>

在我的javaScript中,我想要类似下面的东西。

$(document).ready(function() {
    var notes = ["one", "two", "three"];
});

那么如何将数据从java发送到javascript?请具体说明。先感谢您。

来自Bilal的解决方案

<%@ page import="java.util.List" %>
<%@ page import="java.util.ArrayList" %>

<html>
    <body>

    <% List<String> strList = new ArrayList<String>();
strList.add("one");
strList.add("two");
strList.add("three"); %>

<script type="text/javascript">

$(document).ready(function() {

    var notes = new Array();
    <%
    for(String note:strList){
    %>
    notes.push('<%=note%>');
    <%}%>
    alert(notes[0]);
});
</script>


</body>

2 个答案:

答案 0 :(得分:2)

在客户端,在执行JavaScript代码的上下文中,Java代码已经编译,执行并转换为HTML,CSS或JavaScript。您可以做的是在Java代码中创建一些JavaScript代码。

<%@ page import="java.util.List" %>
<%@ page import="java.util.ArrayList" %>
<%@page contentType="text/html"%>
<% List<String> strList = new ArrayList<String>();
   strList.add("one");
   strList.add("two");
   strList.add("three"); 
   out.println("<script>");
   out.print("var notes = [");
   boolean first = true;
   for(String str: strList){
       out.print((first?"":",") + "\""+str+"\"");
       first = false;
   }
   out.print("];");
   out.println("alert(notes[0]);");
   out.println("</script>");
%>

上面的示例将创建一个新的HTML script元素,其中包含JavaScript数组的定义和初始化,该数组将包含String列表中的所有strList

另一种解决方案是使用AJAX从JavaScript代码连接到jsp页面以检索数据。

答案 1 :(得分:2)

尝试这个在javascript块中使用java代码。我在jsp页面中使用此代码,该页面打印值数组一,二,三,不确定您是否正在查找相同的内容或其他内容。

<% List<String> strList = new ArrayList<String>();
    strList.add("one");
    strList.add("two");
    strList.add("three"); %>

    <script type="text/javascript">

    $(document).ready(function() {

        var notes = new Array();
        <%
        for(String note:strList){
        %>
        notes.push('<%=note%>');
        <%}%>
        alert(notes);
    });
    </script>

这是我的完整jsp页面代码

<%@page import="java.util.ArrayList"%>
<%@page import="java.util.List"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<script
  src="https://code.jquery.com/jquery-2.2.4.min.js"></script>
</head>

<% List<String> strList = new ArrayList<String>();
strList.add("one");
strList.add("two");
strList.add("three"); %>

<script type="text/javascript">

$(document).ready(function() {
    var notes = new Array();
    <%
    for(String note:strList){
    %>
    notes.push('<%=note%>');
    <%}%>
    alert(notes);
});
</script>
<body>

</body>
</html>