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

问题描述:

我正在一个应用程序中,我必须在java类中创建一个html表,并且必须将其保存在数据库中。我在java中创建该表,但是如何生成该表。采用3 lists.I我给我做了什么动态记录,如何从列表中生成java类中的动态表

       +"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>" 

所以这是我使用的Java类的表,我有3只列出了包含3集的信息,如名称,timing1,timing2.Now我想,如果在所有列表中有3个值,那么将生成3行。

的名单

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

像我这样做

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

如何做到这一点,在java类?有人请帮忙。提前感谢

+0

我是否理解你的权利,你必须将* HTML *保存在数据库中? – Andreas

+0

您的输入数据非常晦涩。如果3个列表的值不同,该怎么办? – Andreas

+0

@Andreas是的,你写的3列表将有相同数量的数据肯定 – lucifer

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

当增量构建一个字符串时,应该使用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(); 

当然,为了防范Cross-site scripting (XSS)攻击,你应该逃避数值。

+0

附加(字符串)方法未定义类型字符串其显示 – lucifer

+0

没有关注你。该代码不会对任何字符串执行追加(String)。 – Andreas

+0

你的代码对我来说工作正常,感谢老板 – lucifer

我对你的问题不太清楚,但根据我的理解,下面的代码将适用于你。

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); 
} 
+0

@lucifer这将为你工作... upvote并接受答案,如果它的工作。 – Yadvendra

+0

在循环中执行'String = String.concat(String)'(或'String + = String')对性能不利。在循环中增量构建字符串时始终使用'StringBuilder'。 – Andreas

+0

@Andreas谢谢,我会牢记这一点和实践... – Yadvendra