好。这是我的完整代码。我的问题是,当尝试在我的javascript / html代码中使用字符串数组“ comentarios”时,我不知道如何“传递”整个数组。我已经在applet上工作了几个月,但是我从来不需要将数组传递给“类似于HTML的代码”。我该如何解决?谢谢

import java.awt.*;
import java.awt.event.*;
import java.sql.*;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class ValoracionesDos extends HttpServlet implements SingleThreadModel{
    public void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException{
PrintWriter toClient = res.getWriter();
int numRows=3;
String comentarios[] = new String[numRows];
comentarios[0]="hello";
comentarios[1]="me";
comentarios[2]="bye";
int i=0;
    toClient.println("<html>");
    toClient.println("<body>");
    toClient.println("<script Language=JavaScript>");
    toClient.println("var len = " + numRows+";");
    toClient.println("var myrest = new Array();");
    toClient.println("for(i = 0; i < len; i++){");
         toClient.println("myrest[i]='"+ comentarios[i]+"';");
         toClient.println("}");
    toClient.println("var myTable= '<table border=10 cellspacing=3 cellpadding=3>'");
    toClient.println("for(i = 0; i < " + numRows + "; i++){");
       toClient.println("myTable+='<tr>';");
       toClient.println("myTable+='<td> Restaurante: </td>';");
       toClient.println("myTable+='<td>'+"+"myrest[i]"+"+'</td>';");
       toClient.println("myTable+='</tr>';");
    toClient.println("}");
    toClient.println("myTable+='</table>';");
    toClient.println("document.write(myTable);");
    toClient.println("</script>");
    toClient.println("</body>");
    toClient.println("</html>");

}

}


问题在于,名为“ myrest”的javascript数组始终会填充“ comentarios”的第一个元素(java字符串数组)。我该如何解决。谢谢

最佳答案

首先是一件事:无论您在做什么,无论是创建applet还是servlet或任何其他Java应用程序,通过附加字符串来创建HTML都不是一个好主意。绝对不要那样做!但是,当我开始学习时,我做了同样的事情(:D),今天我对此感到很笑。因此,假设您想学习Java并且需要一些提示...

您的问题是JavaScript(您生成的)中的循环与Java数组无关。当然。您要做的是从Java代码创建另一个程序(JavaScript程序)。这两个程序(您的Java代码和它生成的JavaScript)是两个完全不同的应用程序。因此,您无法在Java数组上的JavaScript中进行迭代(就像您尝试的那样)。

相反,您应该在Java数组上的Java中进行迭代并生成JavaScript代码。这是它的样子(我没有测试过,它是伪代码):

toClient.println("var myrest = new Array();");
for(String element: myArray)
    toClient.println("myrest.append(" + element + ");");

关于java - 将Java数组打印为HTML代码,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22892675/

10-10 19:50
查看更多