有一个JSP页面,其中我有一个ArrayList变量。我需要脚本标签中的这些arraylist值(txt1和txt2)。我尝试了很多组合和谷歌搜索,但没有成功。
javascript功能
function fun1()
{
// how to get arraylist values
}
JSP页面:
<body>
<%
ArrayList<String> al= new ArrayList<String>();
al.add("txt1");
al.add("txt2");
out.println("<input type=text id=" + al.get(0) + ">");out.println("<br>");
out.println("<input type=text id= " + al.get(1) + ">");out.println("<br>");
out.println("<input type=button id=btn1 value=click onClick=fun1(); > ");
%>
</body>
感谢您的回复
答案 0 :(得分:1)
在javascript中你可以很好地使用Scriplets
假设列表'arrayList'在java(JSP)
中有[1,2,3,4]您可以通过此
获取数组列表function fun1()
{
var list = '<%= arrayList %>';
}
如果您打印变量列表,它将是一个值为'[1,2,3,4]'的字符串
然后,您可以使用Regex或简单的字符串操作
来拆分它<body>
<%
ArrayList<String> al= new ArrayList<String>();
al.add("txt1");
al.add("txt2");
out.println("<input type=text id=" + al.get(0) + ">");out.println("<br>");
out.println("<input type=text id= " + al.get(1) + ">");out.println("<br>");
out.println("<input type=button id=btn1 value=click onClick=fun1(); > ");
%>
</body>
<script>
// try the script here
</script>
答案 1 :(得分:0)
尝试这样的事情。
<script>
var myArray=new Array();
myArray[0] = '<%= al.get(0) %>';
myArray[1] = '<%= al.get(1) %>';
<script>
答案 2 :(得分:0)
您可以创建一个脚本标记,在js中创建一个包含所有值的数组。我不熟悉jsp,但是对oyur代码的依赖可能看起来像:
out.println("<script type='text/javascript'>");
out.println("var myJsArray = new Array();");
foreach(var arrayMember in al)
{
out.println("myJsArray.push(" + arrayMember + ");");
}
out.println("</script>");
在Js中只使用数组:
function fun1()
{
var firstArrayMember = myJsArray[0];
// or whatever you want to do
}
如果您有特定阵列成员的密钥,也可以使用assoziativ阵列。
希望你有这个想法
答案 3 :(得分:0)
我会在其他地方使用Java代码,但如果你坚持在JSP中使用它,请尝试使用可读的HTML并仅使用<%=...%>
输出Java内容 - 如下所示:
<%
ArrayList<String> list = new ArrayList<String>();
list.add("text1");
list.add("text2");
%>
<body>
<form ...>
<input type="text" id="<%=list.get(0)%>" />
<input type="text" id="<%=list.get(1)%>" />
<input type="button" id="button1" value="Click" onclick="functionOne();" />
</form>
<script type="text/javascript">
function functionOne() {
alert(document.getElementById("<%=list.get(0)%>").value);
}
</script>
</body>