完全是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>
答案 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>