在同一页面的javascript中检索arraylist的值

时间:2012-06-28 07:09:59

标签: java javascript jsp arraylist

有一个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>

感谢您的回复

4 个答案:

答案 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>