【问题标题】:retrieve value of arraylist in javascript in same page在同一页面的javascript中检索arraylist的值
【发布时间】:2012-06-29 16:17:44
【问题描述】:

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

感谢回复

【问题讨论】:

    标签: java javascript jsp arraylist


    【解决方案1】:

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

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

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

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

    如果你打印变量list,它将是一个值为'[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>
    

    【讨论】:

    • 我试过 var list='' ,但它给出的错误是“al can't be resolved”
    • 您的 jsp 代码必须高于 javascript 才能使范围工作。先放你的 JSP 代码,然后放 javscript 代码。
    • 因为数组列表的范围是本地的。使用脚本 而不是 .
    • Dude.. he he.. 有一个选项叫做 Accept 。请点击那个。这样,以后遇到同样问题的人,可以直接拿答案,而不是尝试所有的解决方案:)
    【解决方案2】:

    试试这样的。

    <script>
    var myArray=new Array();
    myArray[0] = '<%= al.get(0) %>';
    myArray[1] = '<%= al.get(1) %>';
    <script>
    

    【讨论】:

    • 在使用此代码之前尝试打印出al的数据,以确保它有值。
    • 是的。 al 包含值“txt1,txt2”
    【解决方案3】:

    您可以创建一个脚本标签,该标签在 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
    }
    

    如果您有特定数组成员的键,也可以使用关联数组。

    希望你明白了

    【讨论】:

    • 当你可以打印数组文字时,为什么要打印代码来构建数组?
    • 当我开始写这个答案时,没有其他答案......正如我所说的我不熟悉 JSP,只是想给他一个想法。
    【解决方案4】:

    我会将 Java 代码放在其他地方,但如果您坚持将其放在 JSP 中,请尝试使用可读的 HTML 并仅使用 &lt;%=...%&gt; 输出 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>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-12-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-02
      • 1970-01-01
      • 2014-04-27
      相关资源
      最近更新 更多