0

有一个 JSP 页面,其中我有一个 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

4 回答 4

1

在 javascript 中,你可以很好地使用 Scriplets

假设列表'arrayList'在java(JSP)中有[1,2,3,4]

你可以通过这个得到数组列表

function fun1()
{   
   var list = '<%= arrayList %>';
}

如果您打印变量列表,它将是一个值为 '[1,2,3,4]' 的字符串

然后,您可以使用正则表达式或简单的字符串操作来拆分它

<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>
于 2012-06-28T07:14:58.917 回答
0

尝试这样的事情。

<script>
var myArray=new Array();
myArray[0] = '<%= al.get(0) %>';
myArray[1] = '<%= al.get(1) %>';
<script>
于 2012-06-28T07:17:29.390 回答
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 数组。

希望你有这个想法

于 2012-06-28T07:24:23.657 回答
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>
于 2012-06-28T07:28:28.307 回答