java 如何从列表生成java类中的动态表

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/32395050/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-11-02 20:08:10  来源:igfitidea点击:

How to generate dynamic table in a java class from a list

javahtml

提问by lucifer

I am working in a application where i have to make an html table in the java class and have to save that in database.I am creating that table in java but the how to generate dynamic row in that table .Using 3 lists.I am giving what i have done,

我正在一个应用程序中工作,我必须在 java 类中创建一个 html 表并将其保存在数据库中。我正在用 java 创建该表,但如何在该表中生成动态行。使用 3 个列表。我是给予我所做的,

                              +"Interview LineUp"
                              +" <table border ='1'>"
                              +"<tr>"                           
                              +"<td>Interviewe</td>"
                              +"<td>Timing1</td>"       
                              +"<td>Timing2</td> "                              
                              +"</tr> "
                              +"<tr>"                             
                              +"<td>name</td>"
                              +"<td>timing1</td> "
                              +"<td>timing2</td> "
                              +"</tr> "
                              +"</table>"

So this is the table i am using in the java class,and i have 3 lists which contains 3 set of information like name,timing1,timing2.Now i want that if there are 3 values in all the lists then 3 rows will be generating.

所以这是我在 java 类中使用的表,我有 3 个列表,其中包含 3 组信息,如名称、时序 1、时序 2。现在我想要的是,如果所有列表中有 3 个值,那么将生成 3 行.

The lists are

名单是

List<String> interviewTimingToFrom1 = Arrays.asList(interviewTime1.split(","));
List<String> interviewTimingToFrom2 = Arrays.asList(interviewTime2.split(","));
List<String> listOfinterviewerName = Arrays.asList(intervierwName.split(","));

Like i am doing this

就像我在做这个

                          +"<tr>";  
                              for(int k=0;k<listOfinterviewerName .size();k++){
                              +"<td>listOfinterviewerName .get(k)</td>"
                              +}

How to do that,in that java class ?? somebody please help .Thanks in advance

在那个java类中怎么做??有人请帮忙。提前致谢

回答by Andreas

+"test"is not a valid Java statement. What are you adding the text to?

+"test"不是有效的 Java 语句。你要添加的文字是什么?

When building a String incrementally, you should alwaysuse a StringBuilder.

增量构建 String 时,应始终使用StringBuilder.

List<String> interviewTimingToFrom1 = Arrays.asList(interviewTime1.split(","));
List<String> interviewTimingToFrom2 = Arrays.asList(interviewTime2.split(","));
List<String> listOfinterviewerName = Arrays.asList(intervierwName.split(","));

StringBuilder buf = new StringBuilder();
buf.append("<html>" +
           "<body>" +
           "<table>" +
           "<tr>" +
           "<th>Interviewe</th>" +
           "<th>Timing1</th>" +
           "<th>Timing2</th>" +
           "</tr>");
for (int i = 0; i < listOfinterviewerName.size(); i++) {
    buf.append("<tr><td>")
       .append(listOfinterviewerName.get(i))
       .append("</td><td>")
       .append(interviewTimingToFrom1.get(i))
       .append("</td><td>")
       .append(interviewTimingToFrom2.get(i))
       .append("</td></tr>");
}
buf.append("</table>" +
           "</body>" +
           "</html>");
String html = buf.toString();

Of course, to guard against Cross-site scripting (XSS)attacks, you should escape the values.

当然,为了防止跨站脚本 (XSS)攻击,您应该对这些值进行转义。

回答by Yadvendra

I was not so clear about your question, but as per what I understood, the code below will work for you.

我对你的问题不是很清楚,但根据我的理解,下面的代码对你有用。

public static void main(String[] args) {

   String s =  ""+"Interview LineUp"
               +" <table border ='1'>"
               +"<tr>"                           
               +"<td>Interviewe</td>"
               +"<td>Timing1</td>"       
               +"<td>Timing2</td> "                              
               +"</tr> "
            ;

    String interviewTime1="11:30,12:30";
    String interviewTime2="13:30,15:00";
    String intervierwName="Adam,Smith";
    List<String> interviewTimingToFrom1 = Arrays.asList(interviewTime1.split(","));
    List<String> interviewTimingToFrom2 = Arrays.asList(interviewTime2.split(","));
    List<String> listOfinterviewerName = Arrays.asList(intervierwName.split(","));
    for(int i=0;i<interviewTimingToFrom1.size();i++)
    {
        s = s.concat( "<tr>"
                +"<td>"+listOfinterviewerName.get(i)+"</td>"
                +"<td>"+interviewTimingToFrom1.get(i)+"</td> "
               +"<td>"+interviewTimingToFrom2.get(i)+"</td> "
               +"</tr> ");
    }
    s=s.concat( "</table>");
    System.out.println(s);
}